Cocoa NSWindowController窗口?

Cocoa NSWindowController窗口?,cocoa,window,osx-lion,automatic-ref-counting,nswindowcontroller,Cocoa,Window,Osx Lion,Automatic Ref Counting,Nswindowcontroller,我有一个基于菜单栏的应用程序,当点击图标时,它会显示一个窗口。 它在Mac OS X Lion上运行良好,但由于某些原因,在Mac OS X的较早版本雪豹上发生错误。任何时候[TheWindowController window]都会被调用,该方法会停止,但应用程序会继续运行。正因为如此,我不认为窗口是零,它在某种程度上是腐败的 我不知道为什么会发生这种情况,就像我说的,它只发生在MacOSX雪豹上。 顺便说一句,如果这很重要的话,我使用ARC。您正在加载一个NIB,它使用10.6上的10.7特

我有一个基于菜单栏的应用程序,当点击图标时,它会显示一个窗口。 它在Mac OS X Lion上运行良好,但由于某些原因,在Mac OS X的较早版本雪豹上发生错误。任何时候
[TheWindowController window]
都会被调用,该方法会停止,但应用程序会继续运行。正因为如此,我不认为窗口是零,它在某种程度上是腐败的

我不知道为什么会发生这种情况,就像我说的,它只发生在MacOSX雪豹上。
顺便说一句,如果这很重要的话,我使用ARC。

您正在加载一个NIB,它使用10.6上的10.7特定功能Cocoa Autolayout,但它不理解。如果希望支持在10.6上运行,则需要避免使用此类功能。您应该能够在NIB上设置部署目标,这将导致针对该部署目标不支持的功能显示警告


此外,如果您还没有这样做,则需要对目标的构建设置执行类似的操作。设置部署目标。不幸的是,这不一定会对使用10.7中引入的特性的代码发出警告。您可以设置一个替代构建配置,该配置根据10.6SDK构建,并根据该配置进行编译,以了解您在哪里使用10.6之后的功能。有关更多信息,请参阅苹果的。

您正在加载一个NIB,该NIB使用10.6版上的10.7特定功能Cocoa Autolayout,但它不理解。如果希望支持在10.6上运行,则需要避免使用此类功能。您应该能够在NIB上设置部署目标,这将导致针对该部署目标不支持的功能显示警告


此外,如果您还没有这样做,则需要对目标的构建设置执行类似的操作。设置部署目标。不幸的是,这不一定会对使用10.7中引入的特性的代码发出警告。您可以设置一个替代构建配置,该配置根据10.6SDK构建,并根据该配置进行编译,以了解您在哪里使用10.6之后的功能。有关更多信息,请参阅苹果的。

发生这种情况时,控制台日志中是否写入了任何内容?另外,你能显示一个刚刚停止的方法的代码吗?不幸的是,我看不到控制台日志,因为OS X 10.6不支持ARC。。。我又找了些,真奇怪。只要窗口上没有元素,它就没有问题。当我在其中添加自定义视图时,它会崩溃……我不确定ARC与查看控制台日志有什么关系。启动/Applications/Utilities/Console.app。在日志列表中,选择控制台消息。试着运行你的应用程序,看看控制台日志中写入了什么。nskeyedunarchiver decodeobjectforkey无法解码类对象(nslayoutconstraint),我收到了很多这样的消息:com.apple.launchd.peruser.501[157](com.akamai.client.plist[4367])Bug:launchd_core_logic.c:4139(24498):13发生这种情况时,控制台日志中是否写入了任何内容?另外,你能显示一个刚刚停止的方法的代码吗?不幸的是,我看不到控制台日志,因为OS X 10.6不支持ARC。。。我又找了些,真奇怪。只要窗口上没有元素,它就没有问题。当我在其中添加自定义视图时,它会崩溃……我不确定ARC与查看控制台日志有什么关系。启动/Applications/Utilities/Console.app。在日志列表中,选择控制台消息。试着运行你的应用程序,看看控制台log.nskeyedunarchiver decodeobjectforkey无法解码类对象(nslayoutconstraint),我得到了很多这样的东西com.apple.launchd.peruser.501[157](com.akamai.client.plist[4367])Bug:launchd_core_logic:4139(24498):13非常感谢!您已经保存了我的assI,我认为值得一提的是,您可以配置nib的部署目标,以便Xcode可以立即警告出现的不兼容。但是,您必须单独配置项目中的每个nib。我遇到了这个错误,尽管我知道它与10.7特定的功能有关,但它被忽略的原因是因为我的nib的兼容性仍然设置为10.8。非常感谢!您已经保存了我的assI,我认为值得一提的是,您可以配置nib的部署目标,以便Xcode可以立即警告出现的不兼容。但是,您必须单独配置项目中的每个nib。我遇到了这个错误,尽管我知道它与10.7特定的特性有关,但它被忽略的原因是因为我的nib的兼容性仍然设置为10.8。