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