У меня есть класс объекта данных:
@interface Item: NSObject {
NSString *title;
NSString *text;
}
@property (copy) NSString *title;
@property (copy) NSString *text;
@end
@implementation Item
@synthesize text;
- (void)updateText {
self.text=@"new text";
}
- (NSString *)title {
return title;
}
- (void)setTitle:(NSString *)aString {
[title release];
title = [aString copy];
}
@end
Я могу просто установить свойство title
при использовании несинтезированных методов, но когда я устанавливаю свойство с помощью синтезированных методов доступа, я получаю ошибку в методе updateText
в строке, которая гласит:
self.text=@"new text";
Ошибка:
*** NSInvocation: warning: object 0x462d2c0 of class '_NSZombie_CFString' does not implement methodSignatureForSelector: -- trouble ahead
*** NSInvocation: warning: object 0x462d2c0 of class '_NSZombie_CFString' does not implement doesNotRecognizeSelector: -- abort
Почему идентичные несинтезированные средства доступа работают, а синтезированные - нет?
Объект создается в главном потоке, и появляется ошибка при обращении к нему из потока NSOperation.