这样做有什么问题吗?
NSString * string = [ [ NSString alloc ] init ];
...
[ string release ];
还是也加上
string = nil;
有价值吗?(除了最佳实践之外)
这样做有什么问题吗?
NSString * string = [ [ NSString alloc ] init ];
...
[ string release ];
还是也加上
string = nil;
有价值吗?(除了最佳实践之外)
并非必需,但是这是一个很好的实践。如果您在发布后无意中引用它,会发生不好的事情,但在Objective C中引用nil并不会有任何危害。
在多线程应用程序中,将实例变量设置为nil比单线程应用程序更有用,因为在多个线程中,您无法保证实例变量仅在其释放之前被读取。
通常情况下,在单线程应用程序中我不会这样做,除非有其他强制性原因。
Objective-C实际上就是带有花哨预处理器的C语言。
在Objective-C中将指针设置为nil对曾经被指向的内容没有影响。