【问题标题】:Xcode 5 Developing for OS X 10.6Xcode 5 为 OS X 10.6 开发
【发布时间】:2014-01-09 23:05:14
【问题描述】:

我有 10.9/Xcode 5,我正在尝试为 Snow Leopard 编写一个 Cocoa 应用程序。我停用了自动布局并将部署目标设置为 10.6,但存档的应用程序不会在 10.6 上启动,因为它无法加载 nib(控制台输出)。根据我的阅读,我需要使用垃圾收集而不是 ARC。如果这是真的,我如何修改我的项目以构建和运行 10.6?谢谢你的建议。

【问题讨论】:

    标签: cocoa xcode5


    【解决方案1】:

    首先,确保将 XIB 本身配置为针对 10.6 构建。在 Interface Builder 的右侧窗格中,您应该会看到:

    如果您的目标是 64 位 10.6,那么您可以使用 ARCLite,这很好,我强烈推荐它。您真正放弃的唯一一件事是自动归零弱引用。如果你使用 32 位,你只需要放弃 ARC。如果可以的话,我建议您使用 64 位。如果您以 32 位为目标,您会放弃很多。要使用 ARCLite,您无需进行任何更改。为 10.6 编译 ARC 程序时会自动选择它。

    请注意:是的,您正在做的事情是完全可能的。我仍然使用 10.9/Xcode5 设置以 10.5 为目标。

    【讨论】:

    • 请注意,当我们使用 Xcode 5 定位 10.5 时,我们发现了一个糟糕的崩溃程序。对于一些客户,他们会在名为 BUF_MEM_GROW() 的 Apple 函数中的线程 5 中崩溃。此崩溃仅出现在 10.5 机器上,并且在 5 年前从未出现过此应用程序。这是在 32 位、非 ARC 上。
    • 我不知道我的目标机器是 64 位还是 32 位,但因为我已经完成了上面列出的步骤,但它没有t工作,我猜它是32位的。我将如何转换我的项目以支持这一点?我是在引入 ARC 时开始开发的,所以我之前没有做过任何其他方式。
    • 转换为手动内存管理只需要在构建设置中关闭“Objective-C 自动引用计数”。但是您需要学习手动内存管理。 ocoa/Conceptual/MemoryMgmt/Articles/MemoryMgmt.html 但请仔细检查您是否使用的是 32 位机器。当您说“它不起作用”时,您的具体意思是它抱怨找不到 ARClite 吗? “它不起作用”涵盖了很多事情。
    猜你喜欢
    • 1970-01-01
    • 2011-12-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-16
    • 1970-01-01
    • 1970-01-01
    • 2010-12-16
    • 1970-01-01
    相关资源
    最近更新 更多