【发布时间】:2013-03-06 06:54:30
【问题描述】:
代码如下:
- (void) setSomeThing:(NSString *) someThingNew
{
if(someThing!=someThingNew)
{
[someThingNew retain];
[someThing release];
someThing = someThingNew;
}
}
... ...
- (void) dealloc
{
[someThing release];
[super dealloc];
}
@end
setter方法中someThingNew的参数已经是retain,也就是说它的retain count是1。
这里的问题是:someThingNew 应该是release 吗?
或者因为someThing和someThingNew指向同一个对象,而在dealloc方法中someThing一直是release所以someThingNew指向nil?
【问题讨论】:
-
Objective C 内存管理指南:developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/…
标签: objective-c setter