Q
2個所有者的對象
0
A
回答
3
在內存管理中,如果一個對象擁有對另一個對象的引用,它將保留它。
多個對象可以保留一個對象,當對象上沒有保留時,沒有人擁有它並且它消失。保留增加引用計數,並且發佈將其遞減。
一個很好的比喻是給寵物添加皮帶。多人可以添加皮帶,但如果沒有人有皮帶,它可以消失:)
如果您要使用一個對象的引用,而不是直接函數,您將得到參考,然後你應該保留它。如果你調用alloc,複製mutableCopy來獲取引用,那麼你只保留它。如果你通過另一個消息名稱得到它,那麼標準是自動發佈的(這很好),並且將在該函數的範圍之外的某個將來的某個時刻離開。
2
「擁有」他們的意思是「有一個參考。」。 iOS內存管理是顯式的,它是通過引用計數完成的。發送給對象的「保留」消息增加了引用計數,「釋放」消息減少了引用計數。當引用計數達到0時,該對象被釋放(並首先發送「dealloc」消息)。這適用於NSObject層次結構中的對象。
因此,當一個對象被交給一個對象的引用時,它將來會在某個時間繼續使用,該對象會保留指向該對象的指針的副本並向其發送「保留」消息,以便當「所有者」想要訪問它時,該對象將不會被釋放。
相關問題
- 1. 原則2中不同所有者對象的多態關聯
- 2. 2 Xib與1個IBOutlet對象具有相同的文件所有者?
- 3. 對象所有者的架構問題
- 4. 撤消由從對象的所有者
- 5. javax.validation GET場場所有者對象
- 6. 爲什麼對象所有者也不是Oracle中的細分所有者?
- 7. 所有訪問者只有一個對象實例?
- 8. jpa堅持與兩個所有者相同的對象
- 9. 爲對象#2的所有現有屬性合併對象#1到對象#
- 10. AttributeError的:「RangedWeapon」對象有沒有屬性「所有者」
- 11. 調用從擁有對象的方法的所有者
- 12. 對一個對象的所有引用
- 13. 依賴屬性 - 擁有2個所有者有什麼意義?
- 14. 丟棄具有2個流的對象
- 15. 更改對象的所有權不會賦予新所有者權限
- 16. 的fancybox 2對象有
- 17. 對象用作屬性猜測他所有者的類
- 18. 如何從Delphi中的對象中發現所有者?
- 19. 如何鎖定對象/成爲顯示器的所有者(Android)
- 20. 模式,MS SQL中對象的所有者
- 21. 在S3存儲桶中設置對象的所有者
- 22. 更改Salesforce中Opportunity對象的所有者
- 23. VB6錯誤371指定的對象不能用作所有者
- 24. Grails - 只能訪問對象的所有者
- 25. gson反序列化:嵌套對象的引用所有者
- 26. C#訪問所有者對象的自定義屬性
- 27. 如何在Objective-C程序中確定對象的所有者?
- 28. 處理文件的所有者對象awakeFromNib
- 29. 限制訪問對象的所有者DDD
- 30. 如何知道對象的所有者類別
我喜歡「皮帶」類比! – zaph 2012-01-27 12:43:56