이것은 Objective-C 2.0 프로그래밍 언어의 예제입니다. 바닥에있는 세터에서 궁금한게 있는데 value = [newValue retain]
대신 value = [newValue copy]
을 사용할 수 있습니까?objective-c의 setter에 관한 질문입니다.
@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
항상 사본을 사용하는 것이 좋습니다. 또한 @property (retain, copy, readwrite) NSString * 값을 말할 수 있습니까? 효과는 무엇입니까? 감사합니다. – derrdji
컴파일되지 않습니다. 클래스의 가시성으로 인해 항목을 변경하지 못하게 할 때 사본을 사용하는 것이 좋습니다. 값을 나타내지 않는 무언가 (예 : UI 출력 속성)에 대한 속성이있는 경우 retain을 사용합니다. – Jason