【问题标题】:CFString release, why only on ipad?CFString 发布,为什么只在 ipad 上?
【发布时间】:2010-12-11 18:30:14
【问题描述】:


我有同样的项目,一开始它也适用于 ipad,但现在它只适用于 iphone 设备,而不适用于 ipad 设备。这是一个兼容 iphone/ipad 的项目。

可能我编辑了一些东西,但我不知道怎么做!

DEBUG 中返回的错误 || ipad DEVICE 上的 RELEASE 模式是经典:

*** -[CFString release]: message sent to deallocated instance 0x110500

...但在 iphone 上,一切正常。
我无法调试,因为它只显示汇编代码,我不知道问题出在哪里...

这个问题出现了吗?是我的问题还是 ipad 的问题?
这些设备有什么不同?

谢谢,阿尔贝托。

【问题讨论】:

    标签: objective-c memory-management instance cfstring


    【解决方案1】:

    您可能在 iPhone 上链接的是旧版本的框架,而在 iPad 上链接的是较新版本的框架。如果旧版本无意中泄漏了字符串,则很可能泄漏已在较新版本的框架中得到修复。

    无论如何,这最终意味着您没有正确管理自己的记忆。每当您看到“发送到已释放实例的消息”时,这意味着您已未充分保留或过度释放对象。搜索此站点以了解如何使用 NSZombieEnabled(或 Instruments 中的 Zombies 工具)。这些答案将为您提供有关如何追踪错误来源的最佳信息。 :)

    【讨论】:

    • 谢谢,NSZombieEnabled 已经启用。现在我禁用了它,我的应用程序可以处理这个错误:“*** __NSAutoreleaseFreedObject(): release of previous deallocated object (0x15f480) ignored”。有什么想法吗?
    【解决方案2】:

    已解决。
    这是一个愚蠢的NSString release

    现在已经修复了,但是这个问题只出现在ipad上! :) 不知道为什么!

    谢谢。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-02-04
      • 2022-06-14
      • 1970-01-01
      • 1970-01-01
      • 2015-03-27
      • 2014-02-16
      • 1970-01-01
      • 2013-11-24
      相关资源
      最近更新 更多