首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Objecitive-C:聚合/组合是否用于确定强/弱引用

Objecitive-C:聚合/组合是否用于确定强/弱引用
EN

Stack Overflow用户
提问于 2012-12-21 23:20:55
回答 1查看 647关注 0票数 1

我最近一直在阅读关于聚合和组合的文章,以及组合是如何基本上是一种有-有关系,而聚合不是。聚合似乎更像是一个熟人。我知道你的事,但你不是我的。

同时,我一直在学习objective-c内存管理和strong和same关键字。强对象是创建对象,它拥有新变量,弱对象不拥有新变量。

那么,我是否可以得出结论,强和弱直接用于确定一个变量是复合变量还是聚合变量?

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-12-22 02:03:09

强和弱用于确定变量是复合变量还是聚合变量?

事实恰恰相反。看一下实现,你可以得到设计的线索,但设计决定了实现,因为它是一个更高层次的概念。

聚合和组合是两种包含关系:

  • Aggregation是一种部分关系,而部分可以独立存在。也就是说,它们的存在与容器的生命周期无关,因此您使用不隐含所有权的弱引用来引用这些部件。
  • Composition是一种has-a或owns a关系,因此你使用一个强引用来暗示所有权。一旦容器被销毁,部件也会被销毁。

弱和强是用于内存管理的ARC的所有权限定符:

  • strong指向并保留对象。它意味着所有权,因为只要强指针存在,对象就不会是released.
  • weak指针,也不会保留对象。它并不意味着所有权,因为它不会影响对象的生命周期(这取决于其他地方是否存在强引用)。
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13992671

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档