gpt4 book ai didi

iphone - 为什么指向 Storyboard 中的静态单元格的 IBOutletCollection 返回 null?

转载 作者:行者123 更新时间:2023-12-03 18:31:11 25 4
gpt4 key购买 nike

我已经在代码中定义了它:

@property (nonatomic, weak) IBOutletCollection(UITableViewCell) NSSet * certaintyCells;

并合成。我绝对确定该 Controller 用于 Storyboard,并将三个单元连接到该集合。

接下来,在 didSelectRowAtIndexPath: 方法调用中,我添加了以下代码,并添加了 NSLog 用于调试:

        NSLog(@"Certainty Cells: %@",certaintyCells);
for (UITableViewCell * cell in certaintyCells) {
[cell.textLabel setTextColor:[UIColor colorWithRed:0 green:0 blue:0 alpha:1]];
[cell setSelectionStyle:UITableViewCellSelectionStyleBlue];
}

输出是这样的:

Certainty Cells: (null)

当然,预期的行为不会发生。

关于为什么会发生这种情况有什么想法吗?我确实确保我使用的是静态单元,而不是动态原型(prototype)。附带说明一下,这三个单元也连接到它们自己的(正在工作的)IBOutlet。

谢谢

最佳答案

我通过做出当时对我来说没有意义的更改找到了答案。 我将属性从weak更改为strong,并且它起作用了。

为什么我首先有(弱):

因为如果 View 由于内存警告/等原因决定卸载,我不想阻止某些东西被释放。

为什么这种想法是错误的:

因为 IBOutletCollection 是 NSSet 或 NSArray 的实例。 NSSet/NSArray 不会被 View 保留,因为它本身不是 subview 。对于 IBOutlet,弱属性很好,对于 IBOutletCollection,则需要强属性,否则引用计数立即为零并被释放。

我将其留在这里,希望对其他人有帮助。

关于iphone - 为什么指向 Storyboard 中的静态单元格的 IBOutletCollection 返回 null?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9439161/

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