gpt4 book ai didi

objective-c - 安装后应用程序无法正常运行

转载 作者:行者123 更新时间:2023-12-03 16:52:56 25 4
gpt4 key购买 nike

我的 Mac OS X 应用程序遇到了一个奇怪的问题。我有一个在辅助线程中运行的进程。该过程在 for 循环中将某个操作重复用户指定的次数。

在 for 循环的每次迭代中,都会有一个使用字符串文件的内容进行初始化的字符串。如果字符串文件的内容等于“YES”,则循环中断(默认情况下该文件设置为“NO”)。当用户想要停止循环时,他们点击“停止”按钮,将文件的内容设置为“YES”

当我在 Xcode 中运行应用程序以及将应用程序导出为 .app 时,这实际上非常有效。当我实际将应用程序转换为 pkg 并安装它时,就会出现问题。停止功能不再正常运行。我很困惑到底是什么问题。我正在使用 [NSBundle mainBundle] 初始化对我的文件的所有引用,因此我应该在我的应用程序包中引用该文件。

编辑:我实际上决定切换到检查循环中的原子 BOOL 值,当按下停止按钮时我会更改该值。这对我来说似乎是一个更简单的解决方案。

最佳答案

出于非常好的安全原因,普通用户无权修改安装在/Application 文件夹中的应用程序。此外,在不使您的签名代码失效的情况下,无法修改签名的应用程序(即通过 App Store 销售的任何应用程序)。

永远、永远、永远依赖可修改的应用程序包。它从来不应该是这样。 始终 use standard user data folders例如“~/Library/Application Support/”或“~/Library/Caches/”用于与应用程序相关的非文档文件。

就您的一般方法而言,重复轮询文件(尤其是在紧密循环中)会产生大量磁盘事件。 “Laptop Killah”对于该应用程序来说是个好名字。 :-) 您应该考虑完全改变这种方法。如果您在另一个问题中提供更多详细信息(您在做什么以及为什么)并寻求建议,我几乎肯定会有许多更好的方法,不会像破解一样消耗用户的电池电量 -杂货店里乱七八糟的老鼠。

另外,我猜你从来没有检查过你的文件是否写入成功。标准的 -writeToURL/File:... 方法返回一个 BOOL 来表示成功或失败,并设置一个带有更多详细信息的 NSError (如果您传递一个指向该错误的指针)。养成忽视这一点的习惯。在这种情况下,您可能已经找到了自己的答案,因为您知道代码的问题所在。从那里开始,找出原因就不会是一个巨大的飞跃。

关于objective-c - 安装后应用程序无法正常运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7456597/

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