目标c问题,我有一个指针NSObject * abc; 我没有在init方法中分配和初始化它。 那么,我是否需要在方法中执行此操作?
-(void)someThingElse{
if(abc != nil){
[abc release];
abc = nil;
}
abc = [[NSObject alloc] init];
}
我的流量对吗?谢谢。
答案 0 :(得分:6)
您的代码可以简化为:
[abc release];
abc = [[NSObject alloc] init];
,因为
向-release
发送nil
条消息不会执行任何操作,因此无需检查nil
如果您准备分配abc
,则无需将nil
设置为abc
您也可以考虑将retain
声明为具有self.abc = [[[NSObject alloc] init] autorelease];
语义的objective-c属性,在这种情况下,您只需执行以下操作:
dealloc
在任何一种情况下,您的[abc release]
方法还应包含{{1}},当然