0
A
回答
5
EXT_BAD_ACCESS
很可能是因爲您的對象引用不再有效。
1
代碼可能會崩潰。但是大部分時間它也可能工作。
你制動一個規則,你可能會被抓住。但你也可以放棄它,生活在不斷擔心的事情中,以後可能會被抓住。
0
獲取EXT_BAD_ACCESS。因爲你已經釋放它,現在試圖再次釋放。
您的對象引用不再有效。
0
一旦對象的保留計數達到0,它就會被釋放,並且所有進一步訪問它的嘗試都將導致隨機行爲。
如果使用autorelease來代替,保留計數不會被降低,並且該對象將被放入autoreleasepool中。一旦達到autoreleasepool drain命令,該對象只會降低其保留計數,通常在更廣泛的範圍內以更高的級別完成。如果您在autoreleasepool耗盡後確實需要該對象,則應在執行drain之前保留該對象,否則它將具有與第一段中完全相同的行爲。
1
有在這裏做出一個重要的區別:你無法釋放對象再次,因爲對象不再存在。如果您向變量(即release
或任何其他消息)發送另一個消息,則行爲未定義,因爲該變量不再指向有效的對象。 (可能變量現在指向的地址將被重用於不同的對象,在這種情況下,它可能不會崩潰,但當然這仍然是一個錯誤。)
相關問題
- 1. 如果我釋放對象,釋放對象所屬的池後會發生什麼情況?
- 2. 如果您嘗試釋放已釋放的對象,會發生什麼情況?
- 3. 什麼時候釋放了一個自動釋放的對象?
- 4. 對象在釋放後沒有釋放
- 5. 這個對象爲什麼被釋放?
- 6. 一個對象被釋放
- 7. 爲什麼我應該[對象釋放];對象=無;何時釋放一個對象?
- 8. 什麼時候會釋放一個autorelease
- 9. 釋放原生對象
- 10. 當你嘗試釋放()已經釋放c內存時會發生什麼?
- 11. 釋放對象
- 12. 返回後釋放對象?
- 13. 我什麼時候可以釋放一個對象?
- 14. 在Objective-c中釋放對象時實際發生了什麼?
- 15. 當我釋放畫布時,DC會發生什麼?
- 16. 釋放或自動釋放的對象
- 17. Viewcontroller釋放我的對象
- 18. 對象被釋放 - 爲什麼?哪裏?
- 19. 爲什麼我得到「發送釋放的對象錯誤」?
- 20. 如果調用對象被釋放,調度線程會發生什麼?
- 21. 雙釋放自動釋放對象不會崩潰
- 22. 釋放自動釋放的字符串對象不會崩潰
- 23. 釋放PyTuple對象
- 24. 的釋放對象
- 25. 釋放ABMultiValueRef對象
- 26. 對象不釋放
- 27. 在父對象被釋放後延遲釋放伊娃爾
- 28. 即使我釋放它後,互斥似乎也不會釋放
- 29. 釋放一個對象是否會銷燬該對象?
- 30. 什麼時候應該在dealloc中釋放一個對象?
代碼,編譯,請自己看看? – scalbatty 2011-04-13 11:43:42
@luzal:你離rtfm不遠......我認爲這不是一個好主意。 – 2011-04-13 12:10:26