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. 直接釋放對象