我因内存错误而完全不知所措。这个问题只happens
在 上device
而不在simulator
. 它也仅在应用程序首次在设备上加载时发生。如果我关闭应用程序并重新启动它,问题不会自行预设。这是我得到的错误
-[CFString retain]: message sent to deallocated instance 0xfd5a2f0
我已经尽一切努力试图弄清楚释放的字符串是什么。请帮我弄清楚在设备而不是模拟器上运行时释放的对象是什么!提前致谢!
更新:我仍然没有解决方案,但我已经确认该应用程序将在我设置框架的代码行上持续崩溃,并且显示上述错误。如果我将此代码注释掉,应用程序将通过这一点,但可能会在其他奇怪的地方崩溃。我什至无法开始确定崩溃的起源。
CGRect frame = CGRectMake(27, 96, 265.0, 50.0);
someAcct.frame = frame;
我对此感到很困惑,因为这不是一个字符串。有任何想法吗?
更新 2:此问题与正在同步的 NSUser 默认值直接相关。这似乎很随机,但这就是导致问题的原因。有什么帮助吗?
更新3:问题已在一周前得到解决。这实际上是由于无法访问字符串。一个字符串被传递给一个方法,然后该方法确实起作用并将数据传递给另一个方法,依此类推。直到最后,数据将被写入用户默认值和文档文件夹中包含的本地 plist。突然之间,即使这些地方与字符串无关,应用程序也会在上述非常奇怪的地方持续崩溃。我很困惑,在玩了很长时间后,我决定转到 .h 文件并一次检查每个字符串,确保每个字符串都在 .m 文件中合成并且应用了 self.stringName在整个 .m 文件中。在花了一个小时之后,我终于找到了应该受到指责的字符串,问题现在已经解决。使用自我。stringName 允许找到内存并避免这些晦涩难懂且高度混乱的应用程序崩溃。感谢大家的所有建议和提示!