【问题标题】:Strange issue due to block support for iOS 3.1.3由于阻止对 iOS 3.1.3 的支持而导致的奇怪问题
【发布时间】:2011-05-12 16:15:44
【问题描述】:

因为我经常在 3.1.3 设备上测试我的应用程序,所以我必须添加一个链接器标志“-weak_library /usr/lib/libSystem.B.dylib”来支持那里的块。在我刚刚开始从 Apple 示例中添加一些游戏中心编码之前,这不是问题。只有在模拟器中,当一个块(甚至是一个空的块)作为 GC 编码中的身份验证回调移交时,我在 Apple 库深处的某个地方遇到了即时崩溃(EXC_BAD_ACCESS)。当我提供 nil 作为回调时,GC 登录工作正常并且应用程序继续。 它在所有真实设备上都可以正常工作(iPad、带有 iOS 4.3 的 iPhone、带有 iOS 3.1.3 的 iPod——当然没有 GC)。当我删除链接器的弱链接标志时,它也会在模拟器中运行而不会出现问题。 有没有人知道那里发生了什么?每次我想部署到我的旧 iPod 时才添加链接器标志,这不是一个令人满意的解决方案。

谢谢,习惯

【问题讨论】:

  • 问题只是iOS模拟器中的一个错误。这些代码在设备上运行良好。我对 Apple 的 bug 报告器 (radar://9470793) 进行了调查

标签: iphone ios sdk objective-c-blocks


【解决方案1】:

一位苹果工程师知道正确答案:

-weak_library /usr/lib/libSystem.B.dylib 会破坏 iOS 模拟器。请改用 -weak-lSystem。

这确实有效!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-11
    • 1970-01-01
    • 2023-03-21
    相关资源
    最近更新 更多