The Objective-C Programming Language 를 보면
property 의 속성을 nonatomic, copy 로 선언한 경우의, 대략적인 setter의 모습을 볼 수 있다.
@property (nonatomic, copy) NSString *string;
....
-(void)setString:(NSString *)newString {
if (string != newString) {
[string release];
string = [newString copy];
}
}
그렇다면 retain 은 다음과 같을것이다.
@property (nonatomic, retain) NSString *string;
....
-(void)setString:(NSString *)newString {
if (string != newString) {
[string release];
string = [newString retain];
}
}
결국 newString 의 값을 변경해도 괜찮은지 아닌지의 차이가 되버린다.

