我想問一下關於iPhone的應用和目標C的問題。在實現程序中,有一個名爲'dealloc'的函數,這個函數只能被應用程序調用一次嗎?例如,如果我分配一個對象並保留它2次,保留計數爲2,並且我從不在程序中使用'release',除非在dealloc中。將對象從內存中移除,否則將從內存中移除對象。謝謝。在iPhone中保留count和dealloc
回答
在實現程序中,有一個名爲'dealloc'的函數,這個函數只能被應用程序調用一次嗎?
是的。 -dealloc
破壞對象。試圖再次發送任何消息,包括-dealloc
是錯誤的。
如果我ALLOC一個對象,並保留它的2倍,則保留計數爲2
小心。保留計數爲至少 3.除代碼之外的其他內容可能會保留該對象。最好不要擔心保留數量,只考慮所有權。
每個alloc,new,copy或retain都是所有權的主張。只有當所有權的所有權利都被放棄後,該對象的dealloc方法纔會被調用。通過發送-release
來放棄所有權的主張。所以如果你從來沒有發佈過一個對象,除了它自己的dealloc,你永遠不會釋放它。
dealloc
當對象被銷燬時(當其引用計數達到0時)被系統調用一次。如果您的班級中存在成員變量您的init
功能,則必須在您的dealloc
功能中使用release
。
如果你給別人一個指針,這些成員對象之一,他們retain
它的成員都可以在你的dealloc
生存的release
,而是通過發送retain
消息,他們正在採取責任後發送release
消息,確保其最終的破壞。
感謝您的回覆。如果我忘記設置發行版,那麼有關程序或對象的一些問題是否會留在內存中?謝謝。 – Questions 2010-07-23 08:29:47
該對象將保留在內存中,這是一個問題。 – jasongetsdown 2010-07-23 10:53:48
- 1. 多個UIViews,dealloc和保留
- 2. Objective-C在dealloc中保留計數
- 3. - (空)dealloc的財產(非原子,保留)
- 4. iPhone中的CustomCell Dealloc
- 5. iPhone dealloc和viewDidUnload問題
- 6. 在dealloc方法中檢查保留計數
- 7. dealloc在iPhone上調用嗎?
- 8. 在遊戲中保留對象iphone
- 9. 如何在iphone中保留數據?
- 10. 在內存中保留對象(iPhone SDK)
- 11. iphone的dealloc財產
- 12. iPhone發佈的dealloc
- 13. iPhone - dealloc subview UIViewController removeFromSuperview
- 14. UIView在dealloc之後保留子視圖ARC
- 15. 在自動引用計數下,爲什麼不允許保留,釋放和dealloc?
- 16. iPhone委託和控制器dealloc?
- 17. 在其他函數中保留count = 0?內存管理問題?
- 18. iPhone UIImage - 數據保留
- 19. NSData保留舊值-iPhone
- 20. popViewController,dealloc中和removeObserver
- 21. 保留Twitter中的用戶名iOS5 iPhone
- 22. 在iPhone上保留磁盤空間
- 23. cocos2d殺死圖層。 replaceScene不調用dealloc。保留計數2
- 24. iPhone SDK 3.1.3升級到iPhone SDK 4 ApplicationWillTerminate和dealloc未被調用
- 25. iPhone - 保留計數 - 保留數量沒有明顯的原因
- 26. UIViewController和dealloc
- 27. Dealloc和ARC
- 28. 的dealloc在[超級的dealloc]
- 29. 如何在iphone中保留xcode 4.2中的PushNotificaion?
- 30. Dealloc在線程中
如果您分配一個對象並保留兩次,則引用計數至少爲** 3 **。它從1開始並增加兩次。 – jasongetsdown 2010-07-23 10:56:06
@jasongetsdown:不錯的地方。謝謝。我修改了我的帖子。 – JeremyP 2010-07-23 12:23:37