私は、データオブジェクトクラスを持っている:自己でプロパティにアクセスすると、プログラムがクラッシュするのはなぜですか?と合成アクセッサ?
@interface Item: NSObject {
NSString *title;
NSString *text;
}
@property (copy) NSString *title;
@property (copy) NSString *text;
@end
@implementation Item
@synthesize text;
- (void)updateText {
[email protected]"new text";
}
- (NSString *)title {
return title;
}
- (void)setTitle:(NSString *)aString {
[title release];
title = [aString copy];
}
@end
非合成された方法を使用しているとき、私はちょうど罰金title
プロパティを設定することができますが、私が合成アクセサでプロパティを設定すると、私はライン上updateText
方法でエラーが出ますそれは読む:
[email protected]"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スレッドからアクセスするとエラーが表示されます。
オブジェクトはメインスレッドで作成され、NSOperationスレッドからアクセスするとエラーが表示されます。 – Rod