dealloc或发布objective-c中的最佳实践?
我只是简单地释放如下对象:dealloc或发布objective-c中的最佳实践?,objective-c,pointers,Objective C,Pointers,我只是简单地释放如下对象: [myObj release]; 我看到其他人补充说: [myObj release]; myObj = nil; 后者是否更有利,因为现在不再有对该指针的引用?这只是为了确保可能发送到myObj的其他后续消息不会引发异常。在Objective-C中可以将消息发送到nil 否则,myObj仍然指向它所在的内存地址,访问它可能会导致错误访问。只是为了确保可能发送到myObj的其他连续消息不会引发异常。在Objective-C中可以将消息发送到nil 否则,myObj
[myObj release];
我看到其他人补充说:
[myObj release]; myObj = nil;
后者是否更有利,因为现在不再有对该指针的引用?这只是为了确保可能发送到
myObj
的其他后续消息不会引发异常。在Objective-C中可以将消息发送到nil
否则,
myObj
仍然指向它所在的内存地址,访问它可能会导致错误访问。只是为了确保可能发送到myObj
的其他连续消息不会引发异常。在Objective-C中可以将消息发送到nil
否则,myObj
仍然指向它所在的内存地址,访问它可能会导致访问错误。根据我的说法,这完全取决于myObject的范围
如果myObject范围以release语句结束,那么将其设置为nil没有任何好处
如果myObject作用域没有以release语句结束,那么将对象设置为nil可以使对象访问安全。很有可能myObject内存被释放,您尝试访问此内存位置,这将导致异常
我认为这完全取决于myObject的范围
如果myObject范围以release语句结束,那么将其设置为nil没有任何好处
如果myObject作用域没有以release语句结束,那么将对象设置为nil可以使对象访问安全。很有可能myObject内存被释放,您尝试访问此内存位置,这将导致异常
调试时,您还可以使用NSZombie功能检测是否向解除分配的对象发送消息。调试时,您还可以使用NSZombie功能检测是否向解除分配的对象发送消息。