请看代码如下:
- (void) setSomeThing:(NSString *) someThingNew
{
if(someThing!=someThingNew)
{
[someThingNew retain];
[someThing release];
someThing = someThingNew;
}
}
... ...
- (void) dealloc
{
[someThing release];
[super dealloc];
}
@end
setter 的参数someThingNew
已经retain
在 setter 方法中,表示它的保留计数为 1。
这里的问题是:someThingNew
应该release
吗?
还是因为someThing
和someThingNew
指向同一个对象,而在dealloc
方法someThing
中一直release
这么someThingNew
指向nil
?