请看代码如下:
- (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?