Форум программистов, компьютерный форум, киберфорум
Наши страницы
Objective-C
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
andrejap
13 / 13 / 7
Регистрация: 21.04.2013
Сообщений: 245
1

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

28.07.2015, 17:22. Просмотров 513. Ответов 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
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.07.2015, 17:22
Ответы с готовыми решениями:

Ошибка "Record, object or class type required"
Здравствуйте! Пишу процедуру удаления и delphi выдаёт ошибку &quot;Record, object...

Ошибка "Object or class type required"
подскажите что значит эта ошибка Unit1.pas(783): Object or class type required

Ошибка 2 Аргумент "1": преобразование типа из "int[]" в "object[]" невозможно
object - базовый класс для int. Тогда почему невозможно преобразовать int в...

При компиляции ошибка: C2228: left of ".real",".imag" must have struct/class/union
Помогите, пожалуйста! Компилирую в VS2010... Ошибка: C2228: left of...

WPF MP3 Player и ошибка "Object reference not set to an instance of an object"
Доброго времени суток. Пишу простой проигрыватель mp3 и столкнулся с...

3
Митя800
66 / 66 / 19
Регистрация: 13.07.2015
Сообщений: 219
28.07.2015, 19:24 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;
 
}
1
Dangeloid
0 / 0 / 0
Регистрация: 28.07.2015
Сообщений: 8
28.07.2015, 22:19 3
Митя800 прав, а еще советую ivar'ы объявлять через знак _, так по крайней мере делает эпл по умолчанию, когда синтезируется свойство:
Objective-C
1
2
 double _width;
 double _height
и не использовать слово get в методах которые и так возвращают значение (читайте про геттеры и сеттеры):

Objective-C
1
- (double)height;
0
andrejap
13 / 13 / 7
Регистрация: 21.04.2013
Сообщений: 245
29.07.2015, 02:30  [ТС] 4
Dangeloid, а вот этот знак "_" как-то связан с сокрытием данных? По онлайн курсу я понял, что можно скрывать члены с помощью этого знака. Это так?

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

Добавлено через 2 минуты
Аааа, или только так? [[MyType alloc] initWithMyParam:"foo"].
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.07.2015, 02:30

Ошибка "Object reference not set to an instance of an object" при создании списка
Добрый день. Задача такая: На входе дано несколько чисел (не знаем, какое...

JExcelAPI ошибка "Text Object on sheet "*" not supported - omitting"
Обрабатываю excel-файлы, для этого решил использовать JExcelAPI. Некоторые...

Ошибка "Object reference not set to an instance of an object" при ListBox1SelectedIndexChanged
Доброго дня всем!!! Подскажите плиз почему это событие void...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

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