これはObjective-C 2.0プログラミング言語の例です。 私はちょうど底のセッターで、value = [newValue retain]
の代わりにvalue = [newValue copy]
を使うことができますか?objective-cのセッターに関する質問
@interface MyClass : NSObject
{
NSString *value;
}
@property(copy, readwrite) NSString *value;
@end
// assume using garbage collection
@implementation MyClass
@dynamic value;
- (NSString *)value {
return value;
}
- (void)setValue:(NSString *)newValue {
if (newValue != value) {
value = [newValue copy];
}
}
@end
いつもcopyを使うのは良い考えですか?また、NSString *値を@property(保持、コピー、読み書き)することができますが、その効果は何ですか?ありがとうございます – derrdji
それはコンパイルされませんでした。クラスの可視性からアイテムを変更できないようにするにはコピーを使用することをお勧めします。値を表さないもの(例えば、UIコンセントプロパティ)にプロパティがある場合、retainを使用します。 – Jason