Форум программистов, компьютерный форум CyberForum.ru

Objective-C

Войти
Регистрация
Восстановить пароль
 
andrejap
13 / 13 / 1
Регистрация: 21.04.2013
Сообщений: 245
#1

Не создается объект. Ошибка "autorelease called without pool for object of class" - Objective-C

28.07.2015, 17:22. Просмотров 437. Ответов 3
Метки нет (Все метки)

Здравствуйте.
Почему не создается объект Rect?

Objective-C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#import <Foundation/Foundation.h>
 
@interface Rect : NSObject <NSCopying> {
    double width;
    double height;
}
- (Rect *) initWithWidth:(double)w
                  height:(double)h;
 
- (Rect *) copyWithZone:(NSZone *)zone;
 
- (double) getHeight;
                  
@end
Objective-C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#import "rectangle.h"
 
@implementation Rect
- (Rect *) initWithWidth:(double)w
                  height:(double)h
{
    width = w;
    height = h;
    
    return [super init];
}
 
//...
@end
Objective-C
1
2
3
4
5
6
7
8
9
10
11
#import <Foundation/Foundation.h>
#import "rectangle.h"
#import "advrectangle.h"
 
int main (int argc, const char * argv[])
{
 
        Rect * r = [Rect initWithWidth:20 height:30];
        NSLog(@"%f", [r getHeight]);
        return 0;
}
Если что увидите здесь не нужное - ногами не пинайте - ObjC учу после плюсов, и как-бы пытаюсь язык понять в парадигме "от сложного к простому".

Спасибо.

log:
sh-4.3$ main
2015-07-28 10:28:05.640 main[531] autorelease called without pool for object (0x12a7eb0) of class GSCInlineString in thread <NSThread: 0x12ae490>
2015-07-28 10:28:05.641 main[531] autorelease called without pool for object (0x12ae2d0) of class NSException in thread <NSThread: 0x12ae490>
2015-07-28 10:28:05.641 main[531] autorelease called without pool for object (0x13a4270) of class NSLongLongNumber in thread <NSThread: 0x12ae490>
2015-07-28 10:28:05.641 main[531] autorelease called without pool for object (0x13aa4f0) of class NSLongLongNumber in thread <NSThread: 0x12ae490>
2015-07-28 10:28:05.641 main[531] autorelease called without pool for object (0x139fa40) of class NSLongLongNumber in thread <NSThread: 0x12ae490>
2015-07-28 10:28:05.641 main[531] autorelease called without pool for object (0x13a19a0) of class NSLongLongNumber in thread <NSThread: 0x12ae490>
2015-07-28 10:28:05.641 main[531] autorelease called without pool for object (0x1350e40) of class NSLongLongNumber in thread <NSThread: 0x12ae490>
2015-07-28 10:28:05.641 main[531] autorelease called without pool for object (0x1350d20) of class NSIntNumber in thread <NSThread: 0x12ae490>
2015-07-28 10:28:05.641 main[531] autorelease called without pool for object (0x134e690) of class NSLongLongNumber in thread <NSThread: 0x12ae490>
2015-07-28 10:28:05.641 main[531] autorelease called without pool for object (0x1350f60) of class NSIntNumber in thread <NSThread: 0x12ae490>
main: Uncaught exception NSInvalidArgumentException, reason: +[Rect initWithWidth::]: unrecognized selector sent to instance 0x601640
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.07.2015, 17:22     Не создается объект. Ошибка "autorelease called without pool for object of class"
Посмотрите здесь:

Ошибка "SIGABRT" в Xcode(Objective-C) - Objective-C
Написал код Вот фрагмент из (ViewController.h) @interface ViewController : UIViewController &lt;UITableViewDataSource&gt; ...

Не создается объект класса NSBitmapImageRep - Objective-C
Здравствуйте! Есть такой код: NSInteger pixHiOut = currentImageRep.pixelsHigh * aScale; NSInteger pixWiOut =...

Ошибка: "Необъявленная переменная m" - Objective-C
Всем добрый день. Подскажите пожалуйста как исправить ошибку: &quot;Необъявленная переменная m в методе class&quot;. @interface Macbook:...

Приведение типов, или как избавиться от "Warning" - Objective-C
Добрый день господа! Поможите привести типы в порядок, в Delphi есть чудо операторы IntToStr, StrToFloat, и проч. Ну а Xcode при таком...

Объясните, что это: "static const uint32_t collisionCategory = 0x1 << 0"? - Objective-C
Встретил в одном туториале по SpriteKit следующую строчку static const uint32_t projectileCategory = 0x1 &lt;&lt; 0; Подскажите пожалуйста...

Ошибка no known class method for selector - Objective-C
- (void)animate:(UILabel*)label { ; ; ; ; label.alpha = 1.0; ; } Нужно в селекторе вызвать метод...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Митя800
50 / 50 / 12
Регистрация: 13.07.2015
Сообщений: 170
28.07.2015, 19:24     Не создается объект. Ошибка "autorelease called without pool for object of class" #2
У вас нарушение в инициализаторе. Разберитесь как работают методы в ObjC. Посмотрите методы класса и методы объекта.

Для решения вашей задачи смотрите раздел "Access Instance Variables Directly from Initializer Methods" в документации Apple https://developer.apple.com/library/...011210-CH5-SW2

Objective-C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
- (id)initWithFirstName:(NSString *)aFirstName lastName:(NSString *)aLastName {
 
    self = [super init];
 
 
 
    if (self) {
 
        _firstName = aFirstName;
 
        _lastName = aLastName;
 
    }
 
 
 
    return self;
 
}
Dangeloid
0 / 0 / 0
Регистрация: 28.07.2015
Сообщений: 8
28.07.2015, 22:19     Не создается объект. Ошибка "autorelease called without pool for object of class" #3
Митя800 прав, а еще советую ivar'ы объявлять через знак _, так по крайней мере делает эпл по умолчанию, когда синтезируется свойство:
Objective-C
1
2
 double _width;
 double _height
и не использовать слово get в методах которые и так возвращают значение (читайте про геттеры и сеттеры):

Objective-C
1
- (double)height;
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.07.2015, 02:30     Не создается объект. Ошибка "autorelease called without pool for object of class"
Еще ссылки по теме:

Thread 1: Program received signal "SIGABRT" - Objective-C
Добрый вечер. Использую Кокос2Д. Мне надо чтобы спрайт генерировался каждые 2 секунды с позиции другого спрайта(арроу): Пытался...

Хранение значения переменной "онлайн" - Objective-C
Всем привет! Такой вопрос - нужно, чтобы значение некоторой переменной отображалось одновременно у всех пользователей приложения. Видел...

Игра типа "Tower Bloxx" - Objective-C
Задали написать игру подобную Tower Bloxx (суть игры - постройка башни из отдельных блоков), с чего начать, как это реализовать? Кто знает...

Работа с "вкладками" в самодельном браузере - Objective-C
Помогите разобраться, не могу уже понять куда копать. В общем ситуация такая, когда открываю ссылку в новой вкладке все ок. Потому...

Первые "шаги" в objective c - Objective-C
Здравствуйте! Только начал изучение objective c и пока есть трудности с синтаксисом языка. Хотелось бы услышать подсказки. @interface...

Сообщение "Value stored to . during its initialization" - Objective-C
Не понимаю ,в чем проблема.У меня есть 2 класса -карта и колода. Value stored to deck during its initialization is never read Вьізов. ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
andrejap
13 / 13 / 1
Регистрация: 21.04.2013
Сообщений: 245
29.07.2015, 02:30  [ТС]     Не создается объект. Ошибка "autorelease called without pool for object of class" #4
Dangeloid, а вот этот знак "_" как-то связан с сокрытием данных? По онлайн курсу я понял, что можно скрывать члены с помощью этого знака. Это так?

Добавлено через 47 минут
Так, кое в чем разобрался. Фабричный метод пометил знаком "+", далее не пойму как же заставить фабричный метод изменять переменные-члены инстанций классов? По типу как этим занимаются фабричные методы стандартных NS* классов.

Добавлено через 2 минуты
Аааа, или только так? [[MyType alloc] initWithMyParam:"foo"].
Yandex
Объявления
29.07.2015, 02:30     Не создается объект. Ошибка "autorelease called without pool for object of class"
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru