释放后为什么设置为零?

Chi*_*ron 1 cocoa objective-c

我遇到过这种方法:

-(void) someMethod {
    NSMutableArray *anArray = [[NSMutableArray alloc] init]; 
    // Do stuff with anArray ... 
    [anArray release];
    anArray = nil;
}
Run Code Online (Sandbox Code Playgroud)

将数组设置为零必需吗?
在此代码中,通过向数组发送释放消息,它将导致数组被释放.

Jer*_*myP 5

在这种情况下,它是一个毫无意义的键击浪费,因为变量anArray立即超出范围.

在其他情况下,在你释放它所指向的对象之后变量在范围内保持一段时间,这是一个好主意,因为,如果你不小心取消引用它,你会得到一个很容易发现的EXC_BAD_ACCESS,如果你向它发送一条消息,它将被忽略(除了返回nil/0).