Я попытался инициализировать мой NSMutableArray 100 способов с воскресенья, и НИЧЕГО не работает для меня. Я попытался установить его равным недавно выделенному и инициализированному NSMutableArray, просто выделив, инициализируя переменную сам по себе, каждую комбинацию, о которой я мог думать, и всегда тот же результат.NSMutableArray addObject: - [__ NSArrayI addObject:]: нераспознанный селектор отправлен в экземпляр
Вот код:
Object.h
NSMutableArray *array;
@property (copy) NSMutableArray *array;
Object.m
@synthesize array;
if (self.array) {
[self.array addObject:anObject];
}
else {
self.array = [NSMutableArray arrayWithObjects:anObject, nil];
}
ПРИМЕЧАНИЕ: В отлаживать "anObject" НЕ ноль во время исполнения ...
Я тестировал anObject, и это инициализация работает нормально, но я продолжаю получать ошибку ниже, когда Я пытаюсь addObject: to self.array.
2010-07-10 11: 52: 55,499 MyApp [4347: 1807] - [__ NSArrayI AddObject]: непризнанные селектор направлен например 0x184480
2010-07-10 11: 52: 55.508 MyApp [4347: 1807] *** Нагрузочного приложения из-за неперехваченное исключением 'NSInvalidArgumentException', причину: '- [__ NSArrayI AddObject]: непризнанный селектор направлен например 0x184480'
кто-нибудь есть какие-либо идеи, что происходит не так ?
Обратите внимание, что объявление свойства не должно совпадать с типом ivar, поэтому вы должны использовать' @property (nonatomic, copy) NSArray * array; 'в вашем случае. Также обратите внимание, что ваше свойство неявно атомарно, но реализация вашего сеттера отсутствует - см. [Atomicity] (http://developer.apple.com/mac/library/documentation/Cocoa/Conceptual/ObjectiveC/Articles/ocProperties.html # // apple_ref/DOC/UID/TP30001163-CH17-SW28). –
Наконец, '-mutableCopy' уже возвращает сохраненный экземпляр, поэтому нет необходимости в' [array сохранить ''- см. [Политика владения объектами] (http://developer.apple.com/mac/library/documentation/Cocoa /Conceptual/MemoryMgmt/Articles/mmObjectOwnership.html#//apple_ref/doc/uid/20000043-SW1). –
Еще раз спасибо, мистер Фрицше. Мне было любопытно, что это удержание сохранилось, но, похоже, оно работает в моей программе. По-видимому, у меня есть ошибка в другом месте. :// Вы - мужчина, спасибо за вклад в эту должность и непреднамеренно, мою программу; Я ценю ваше время! С уважением, Z @ K! – Zak