Форум программистов, компьютерный форум, киберфорум
Наши страницы

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. Просмотров 499. Ответов 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
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Не создается объект. Ошибка "autorelease called without pool for object of class" (Objective-C):

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

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

Ошибка 2 Аргумент "1": преобразование типа из "int[]" в "object[]" невозможно - C#
object - базовый класс для int. Тогда почему невозможно преобразовать int в object? //using System; namespace Liberti { ...

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

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

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

3
Митя800
56 / 57 / 14
Регистрация: 13.07.2015
Сообщений: 197
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 / 1
Регистрация: 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
Привет! Вот еще темы с ответами:

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

Ошибка: "There is no overloaded version of 'setSize' that can be called with these arguments" - Delphi
Подскажите, пожалуйста, почему возникает ошибка при трансляции. Текст ошибки: There is no overloaded version of 'setSize' that can be...

Pycharm: ошибка "raw_input was called, but this frontend does not support input requests." - Python
Здравствуйте. Начал учится кодить в python, мне даже подогнали на два месяца полноценную версию среды разработки pycharm. При введении в...

Ошибка "Object reference not set to an instance of an object" при ListBox1SelectedIndexChanged - C#
Доброго дня всем!!! Подскажите плиз почему это событие void Button2Click(object sender, EventArgs e) { ...


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

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

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