是否有必要在Objective-C中将指针设置为nil后释放?

时间:2009-04-29 17:59:08

标签: objective-c null

这样的事情有什么不对吗?
  

NSString * string = [ [ NSString alloc ] init ];
  ...
  [ string release ];

或者在添加

时是否有任何价值(除了最佳做法)
  

string = nil;

3 个答案:

答案 0 :(得分:28)

没有必要,但是好的做法。如果你在发布后无意中引用它,可能会发生不好的事情,但在Objective C中引用nil没有任何损害。

答案 1 :(得分:3)

将实例变量设置为nil在多线程应用程序中比单线程应用程序更有用,因为使用多个线程时,您无法始终保证实例变量只能在之前读取 >它已经发布了。

我通常不会在单线程应用程序中烦恼,除非有其他令人信服的理由。

答案 2 :(得分:0)

Objective-C与使用花哨的预处理器的C实际上是相同的。

在Objective-C中设置指向nil的指针对该指针曾经指向的内容没有影响。