iphone - 由于对 iOS 3.1.3 的 block 支持导致的奇怪问题

标签 iphone ios sdk objective-c-blocks

因为我经常在 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/

相关文章:

python - 在哪里可以找到 box python SDK 的 jwt_key_id

iphone - GL_DOT3_RGB 的限制

iphone - 删除 iphone 中的语句不起作用

iphone - iOS "Open With..."ZIP 文件

iOS 在禁用按钮上进行内部修饰

ios - 如何将按钮的隐藏状态保存为 NSUserDefault?

Android SDK 工具向导 : Detects JDK 1. 7 而不是 JDK 1.6

ios - 即使应用程序未在前台运行,我们能否定期在 IOS swift 中获取位置更新

iphone - iOS 中 ID3 标签的正确编码

android - 无法从 SDK 管理器安装 "Android SDK Platform Tools"