因为我经常在 3.1.3 设备上测试我的应用程序,所以我必须添加一个链接器标志“-weak_library/usr/lib/libSystem.B.dylib”以支持那里的 block 。在我开始从 Apple 示例中添加一些 gamecenter 编码之前,这不是问题。只有在模拟器中,当一个 block (甚至是一个空 block )作为 GC 编码中的身份验证回调被移交时,我在 Apple 库的某个深处遇到了即时崩溃(EXC_BAD_ACCESS)。当我提供 nil 作为回调时,GC 登录工作正常并且应用程序继续。 它在所有真实设备上运行良好(iPad、带有 iOS 4.3 的 iPhone、带有 iOS 3.1.3 的 iPod——当然没有 GC)。当我删除链接器的弱链接标志时,它也会在模拟器中运行而不会出现问题。 有谁知道那里发生了什么?这不是一个令人满意的解决方案,仅在每次我想部署到我的旧 iPod 时添加链接器标志。
谢谢你
最佳答案
一位 Apple 工程师知道正确答案:
-weak_library /usr/lib/libSystem.B.dylib breaks the iOS Simulator. Use -weak-lSystem instead.
这确实有效!
关于iphone - 由于对 iOS 3.1.3 的 block 支持导致的奇怪问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5981088/