gpt4 book ai didi

ios - 如果我不想要它包含的对象的所有权,为什么要拥有一个数组?

转载 作者:行者123 更新时间:2023-11-28 18:10:35 25 4
gpt4 key购买 nike

我正在我的 Controller 中创建按钮(存在于我的 View 中)的 outletCollection。由于 View 已经对其包含的按钮具有强引用。在创建这个集合时,Xcode 添加了这段代码
@property (strong, nonatomic) IBOutletCollection(UIButton) NSArray *cardButtons;

注意上面的强关键字。
我的问题是:

a) 如果使用 weak 而不是 strong 为什么这段代码会出错?

b) 数组的所有权会给我它包含的对象的所有权吗?

我对此的看法:
数组只是指针的集合(在本例中)。由于这些指针指向的堆部分已经由 View 拥有,就是这样,我不能再继续了:)

最佳答案

它是用强引用定义的数组。如果您使 cardButtons 变弱,则不会有任何其他对该数组的引用,并且该数组将被释放。

按钮将仍然存在,因为它们的父 View 仍然有对它们的引用。

由于您需要一些东西来保留对数组的引用,因此它的属性被定义为 strong。

数组是强、弱还是赋值对按钮没有影响。

关于ios - 如果我不想要它包含的对象的所有权,为什么要拥有一个数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23173227/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com