IOS setter 中的常见做法如下:
- (void)setMyString:(NSString *)newString {
if ( newString != myString ) {
[myString release];
myString = [newString retain];
}
}
相反,这不是好的做法
- (void)setMyString:(NSString *)newString {
if ( myString != nil ) [myString release];
myString = [newString retain];
}
}
在第一种情况下检查平等的原因是什么?秒的情况下有什么问题?