gpt4 book ai didi

cocoa - 设置弱 ivar 并返回 nil

转载 作者:行者123 更新时间:2023-12-03 17:24:10 24 4
gpt4 key购买 nike

在 ARC 项目中,我将 __weak ivar(声明为 id __weakweakLayer;)设置为 CALayer,该 CALayer 由其 super 层保留。大多数时候这有效。有时,弱 ivar 测试为零。我编写了一些测试代码来简化演示问题的调试。我预计这是一个无限循环,但它通常会在不到 20 次迭代的情况下爆发。突破所需的迭代次数不一致。

array = [NSMutableArray array];
while (1) {
CALayer *layer = [CALayer layer];
[array addObject:layer];
weakLayer = layer;
if (!weakLayer) {
NSLog (@"nil");
break;
}
NSLog(@"not nil");
}

如果我在 if 内使用 poweakLayer 操作放置一个断点,它会打印一个有效的对象。我已经使用 Lion 和 Mountain Lion SDK 在 Xcode 4.3.3 和 4.4 上进行了测试。

最佳答案

现已有 3 人(包括我自己)确认此功能可以在 10.8 上运行,但不能在 10.7.4 上运行。

关于cocoa - 设置弱 ivar 并返回 nil,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11811846/

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