在分配对象之前是否有必要检查对象为零?
Objective C 问题,我有一个指针 NSObject *abc; 我没有在 init 方法中分配和初始化它。 那么,我需要在方法中这样做吗?
-(void)someThingElse{
if(abc != nil){
[abc release];
abc = nil;
}
abc = [[NSObject alloc] init];
}
我的流程对吗?谢谢。
objective c question, I have an pointer NSObject *abc;
I haven't alloc and init it in the init method.
So, do I need to do this in the method?
-(void)someThingElse{
if(abc != nil){
[abc release];
abc = nil;
}
abc = [[NSObject alloc] init];
}
Is my flow right? thank you.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您的代码可以简化为:
因为
向
nil
发送-release
消息不会执行任何操作,因此无需检查nil
< /p>无需设置
abc
为nil
如果您只是要分配给它,则
,您要做的就是:
您还可以考虑将
abc
声明为具有retain
语义的 Objective-C 属性,在这种情况下 无论哪种情况,您的dealloc
方法当然还应该包含[abc release]
Your code could be simplified to:
because
sending a
-release
message tonil
does nothing, so no need to check fornil
no need to set
abc
tonil
if you're just about to assign to itYou might also consider declaring
abc
as an objective-c property withretain
semantics, in which case all you would do is:In either case, your
dealloc
method should also include an[abc release]
, of course