【问题标题】:Main window doesn't run properly on Snow Leopard主窗口在 Snow Leopard 上无法正常运行
【发布时间】:2013-03-19 13:53:35
【问题描述】:

我在 Mountain Lion 上使用 Xcode 4.5 开发的应用程序可以在 Lion 和 ML 上完美运行。

我的 Snow Leopard 测试仪报告说,当应用程序启动时,它被禁用。他的意思是没有任何控件处于活动状态,红色、黄色、绿色的“交通灯”变灰。如果打开了覆盖我的应用的另一个应用,则在移动覆盖应用时,它所覆盖的任何控件或控件的一部分都不存在。

菜单栏是响应式的,我的首选项面板可以正常工作。应用可以从菜单关闭,不知道能不能从键盘关闭。

使用相同序列号的另一个应用程序可以正常工作。

我需要帮助来制定解决方案。我不知道如何追踪。

【问题讨论】:

  • 您自己无法访问运行 10.6 的机器吗?
  • 很遗憾,没有。我想在 Parallels 中安装它,但不能。运行正常的另一个应用程序是您的演示。顺便说一句,好东西。
  • 您能否在问题中提供有关您的应用程序的更多详细信息?您的应用程序的用户界面有什么独特或与众不同的地方吗?您是否有来自 10.6 测试仪的控制台日志,是否记录了任何错误或异常?
  • 我不知道该告诉你什么。启动时,应用程序读取保存的首选项(如果有),并打开串行端口。如果没有保存的波特率和端口名称,用户必须从首选项中选择它们,通知将传递回主应用程序委托并再次尝试打开端口。 AFAIK,没有什么不寻常的,但像我一样新,我可能不会认出它。 ;-o} 我可以将项目压缩并通过电子邮件发送给您。我没有日志。我会要求的。
  • 如果您将项目通过电子邮件发送给我,我会查看它(如果我能够弄清楚发生了什么,请在此处发布答案)。我手边也有一台 10.6 的机器。

标签: cocoa debugging osx-snow-leopard orsserialport


【解决方案1】:

从根本上说,问题在于您希望数据位于 NSUserDefaults 中。在第一次启动时,NSUserDefaults 为您访问的键返回 nil,并且通过后面的代码传递这个 nil 结果会导致抛出异常。解决方案是在应用启动时向 NSUserDefaults 注册默认值:

@implementation AppController
+ (void)initialize
{
    NSDictionary *defaultValues = @{@"SomeKey" : @"DefaultValue"};
    [[NSUserDefaults standardUserDefaults] registerDefaults:defaultValues];
}
@end

【讨论】:

    猜你喜欢
    • 2012-01-31
    • 2013-09-30
    • 1970-01-01
    • 2010-12-01
    • 2011-05-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多