我完全迷失了内存错误。此问题仅在happens上出现,而在device上没有出现。这也仅在首次在设备上加载应用程序时发生。如果我关闭该应用程序并重新启动,则该问题不会自行预设。这是我得到的错误

-[CFString retain]: message sent to deallocated instance 0xfd5a2f0


我已经尝试了所有尝试来找出释放的字符串是什么。请帮助我找出在设备而不是模拟器上运行时释放的对象是什么!提前致谢!

更新:
我仍然没有解决方案,但是我已经确认该应用程序将在我设置框架的代码行中始终崩溃,并且显示上述错误。如果我将此代码注释掉,该应用将通过这一点,但可能在其他奇怪的地方崩溃。我什至无法开始确定崩溃的起因。

CGRect frame = CGRectMake(27, 96, 265.0, 50.0);
someAcct.frame = frame;


我对此很困惑,因为这不是字符串。有任何想法吗?

更新2:此问题与正在同步的NSUser默认值直接相关。这似乎是随机的,但这是造成问题的原因。有帮助吗?

更新3:问题已在一周前解决。实际上,这是由于无法访问字符串。将字符串传递给方法,然后该方法起作用并将数据传递给另一个方法,依此类推。直到最后,数据才被写入用户默认值以及包含在documents文件夹中的本地plist。突然之间,即使在与字符串无关的情况下,应用程序也始终会在类似上面的非常奇怪的位置崩溃。我感到困惑,在玩了很长时间之后,我决定转到.h文件,并一次检查每个字符串,方法是确保每个字符串都在.m文件中合成,并且应用了self.stringName整个.m文件。在花了一个小时之后,我终于找到了应该负责的字符串,现在问题已解决。使用self.stringName可以找到内存,并避免这些晦涩难解的应用程序崩溃。感谢大家的所有建议和提示!

最佳答案

问题是retain count。请参考mememory management并检查您是否未丢失任何内容。

不要忘记转动on NSZombieEnabled

10-01 22:32
查看更多