gpt4 book ai didi

objective-c - 防止 ARC 在分配后立即将弱 ivar 归零(在发布版本中)

转载 作者:太空狗 更新时间:2023-10-30 03:45:34 24 4
gpt4 key购买 nike

<分区>

我有一个自动合成的 readonlyweak 属性:

@property (nonatomic, readonly, weak) KTWindowController* windowController;

我分配合成的 ivar,然后将其添加到数组中:

_windowController = [KTWindowController controller];
[self addSubController:_windowController];

这在调试构建中工作正常。但我收到一份报告,在发布(临时)构建时,这将立即使 _windowController 为零,然后它会尝试将 nil 添加到数组中,从而导致应用程序崩溃。

与调试构建相比,发布(临时)构建中的哪些特定设置(优化级别?)会改变此行为?

令我感到奇怪的是,这种行为会从调试版本变为发布版本。但我能够重现这种行为,它实际上是有道理的 - 只是当它与调试版本中发生的事情不一致时就没有意义了。

建议的解决方法:

KTWindowController* windowController = [KTWindowController controller];
[self addSubController:windowController];
_windowController = windowController;

除了如上所示使用局部变量外,在此类情况下您会推荐什么解决方法?

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