gpt4 book ai didi

objective-c - 代码部署后无法运行

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

我的应用程序的线程中有以下代码:

while (true) {
if (ready) {
progressIndicatorController.value++;
return;
}
}

ready 变量是从委托(delegate)方法更改的。当我通过单击 Xcode 工具栏中的“运行”按钮打开应用程序时,此代码运行良好。但是,如果我打开此应用程序的 .app(通过单击“产品”>“存档”然后按照步骤操作创建的),此代码不知何故不再起作用。

progressIndicatorController.value 永远不会递增,并且此 if 语句的计算结果永远不会为 true。什么可能导致这个问题?

最佳答案

这可能是编译器优化造成的。

当您使用 Archive 进行构建时,XCode 在编译器中启用了优化,这可能会丢弃此类代码。我认为将 Ready 变量设置为 volatile 可以解决您的问题,但如果我是您,我只会尝试重写它,这样就不会触发此问题。

您可以通过在方案下拉列表中选择编辑方案来启用优化进行测试。然后在 Run MyApp.app 中将 Build Configuration 设置为 Release。不过,完成后不要忘记将其设置回“调试”,因为当优化打开时,调试器会有些困惑(即,您看不到大多数变量的值,某些断点可能表现不正常,等等...... )

关于objective-c - 代码部署后无法运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14165300/

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