【问题标题】:Lion won't run app built with Mountain LionLion 不会运行使用 Mountain Lion 构建的应用程序
【发布时间】:2013-05-22 16:22:03
【问题描述】:

我正在尝试让我在 Mountain Lion 上使用 Xcode 4.4 构建的 OS X 应用也可以在 Lion 上运行。

OS X 部署目标 设置为 10.7 没有帮助。该应用程序仍然无法在 Lion 上运行。 (该应用程序不会打开,单击它不会执行任何操作。)

我尝试将基本 SDK 设置为 10.7,但我得到了很多错误,因为我在各处使用 NSArrayNSDictionary 文字、下标以及 @propertys 的默认合成。

根据Objective-C Feature Availability Index,这些功能应该可以在 Lion 上使用。

可能是什么问题?

【问题讨论】:

  • 您是否尝试在调试器中运行它以查看崩溃的位置?
  • 应用程序甚至无法打开。我点击它,它什么也没做。
  • 应用程序在很多方面都无能为力;也许调试器会告诉你错误是什么;例如,Lion 甚至会尝试运行应用程序等。
  • 启动 Console.app。确保选中“所有消息”。启动您的应用程序。它会在控制台中触发任何新消息吗?
  • 如果你使用新的文字,你必须使用 OS X v10.8 SDK。

标签: objective-c xcode macos cocoa


【解决方案1】:

NSWindow 不支持 Lion 中的弱引用。来自“过渡到 ARC 发行说明”:

哪些类不支持弱引用?

您目前无法创建对 以下课程:

NSATSTypesetter, NSColorSpace, NSFont, NSMenuView, NSParagraphStyle, NSSimpleHorizontalTypesetterNSTextView

注意:另外,在 OS X v10.7 中,您不能创建对 NSFontManagerNSFontPanelNSImageNSTableCellViewNSViewControllerNSWindowNSWindowController。此外,在操作系统 X v10.7 AV Foundation 框架中无类支持弱 参考。 对于声明的属性,你应该使用 assign 而不是 虚弱的;对于变量,您应该使用 __unsafe_unretained 而不是 __弱。

此外,您不能从 ARC 下的NSHashTableNSMapTableNSPointerArray

所以是的,在为 Lion 编译时,您应该使用 assign。 (reference)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-06-19
    • 1970-01-01
    • 2013-04-11
    • 1970-01-01
    • 2012-11-13
    • 1970-01-01
    • 1970-01-01
    • 2012-07-27
    相关资源
    最近更新 更多