Tat*_*tat 1 programming-languages objective-c
目标c问题,我有一个指针NSObject*abc; 我没有在init方法中分配和初始化它.那么,我需要在方法中这样做吗?
-(void)someThingElse{
if(abc != nil){
[abc release];
abc = nil;
}
abc = [[NSObject alloc] init];
}
Run Code Online (Sandbox Code Playgroud)
我的流量对吗?谢谢.
您的代码可以简化为:
[abc release];
abc = [[NSObject alloc] init];
Run Code Online (Sandbox Code Playgroud)
因为
发送-release消息nil什么都不做,所以不需要检查nil
如果您只是要分配给它abc,nil则无需设置
您也可以考虑将语句声明abc为具有retain语义的objective-c属性,在这种情况下,您所要做的就是:
self.abc = [[[NSObject alloc] init] autorelease];
Run Code Online (Sandbox Code Playgroud)
在这两种情况下,你的dealloc方法也应该包括[abc release],当然
| 归档时间: |
|
| 查看次数: |
403 次 |
| 最近记录: |