2
A
回答
5
即使你释放一个对象,你的变量仍然会指向某个东西。它指向的是未定义的。它仍然可以指向旧对象,或指向内存中的某个点。将它设置为零可以避免将消息发送到指向的任何地方,并防止错误(消息传递nil不做任何事情)。
这里是一个更好的状态是一个答案:Setting pointers to nil, objective-c
1
这主要需要做的与多线程,如果其他线程试图访问您发布的对象并设置为nil
它不会崩溃。您可以发送消息到nil
对象,它将不会执行任何操作。
但是,如果它只是释放你正在发送消息给释放的对象,你的应用程序将崩溃。
这里是很好的阅读材料:
- http://iphonedevelopment.blogspot.com/2010/09/dealloc.html
- http://www.red-sweater.com/blog/1423/dont-coddle-your-code
如果反对票,请告诉我们原因。
1
如果您刚刚发布它,object
仍然指向它之前有内存地址。如果您检查它为零(object == nil
),它将返回NO
。释放它后最好确保它指向nil
。
相关问题
- 1. 我释放一个释放对象后会发生什么?
- 2. 什么时候释放了一个自动释放的对象?
- 3. 释放对象
- 4. 什么时候应该在dealloc中释放一个对象?
- 5. 这个对象为什么被释放?
- 6. 一个对象被释放
- 7. 对象被释放 - 为什么?哪里?
- 8. 无法释放对象
- 9. 释放PyTuple对象
- 10. 的释放对象
- 11. 释放ABMultiValueRef对象
- 12. 对象不释放
- 13. 释放一个对象是否会销毁该对象?
- 14. Viewcontroller释放我的对象
- 15. 释放对象时出错
- 16. 释放autorelease对象为早?
- 17. IOS7:为释放对象
- 18. 应该释放线程对象吗? C#
- 19. 什么时候应该在objective-c中释放这些对象?
- 20. 什么时候应该释放异步使用的对象?
- 21. 我什么时候可以释放一个对象?
- 22. 释放对象内存中的对象
- 23. 如何释放JSONConnection对象
- 24. 如何释放NSXmlParser对象?
- 25. 对象在释放后没有释放
- 26. 释放或自动释放的对象
- 27. 如何释放一个NSManagedObject对象?
- 28. 应该释放一个对象并将其设置为零?
- 29. 对象与NSMutableArray里的对象 - 对象如何释放
- 30. 直接释放对象