dealloc或发布objective-c的最佳实践?

时间:2010-08-03 15:57:36

标签: objective-c pointers

我只是简单地发布对象:

[myObj release];

我见过其他人补充道:

[myObj release]; myObj = nil;

后者是否更有利,因为现在永远不会有对该指针的引用?

2 个答案:

答案 0 :(得分:4)

只是为了确保可能发送给myObj的其他连续消息不会抛出异常。可以在Objective-C中向nil发送消息。

否则,myObj仍然指向的内存地址,访问它可能会导致BAD_ACCESS错误。

答案 1 :(得分:1)

据我所知,这完全取决于myObject的范围。

  1. 如果myObject范围以release语句结束,则将其设置为nil没有任何优势

  2. 如果myObject作用域不以release语句结束,则将对象设置为nil可使对象访问安全。 myObject内存很有可能被释放,并且您尝试访问此内存位置,这将导致异常。

相关问题