NSWindowController showWindow在其他Mac上导致问题

时间:2011-05-27 21:54:47

标签: objective-c cocoa nswindowcontroller

我正在测试我的新Mac App,它在我的两台MacBook Pro和另一台beta测试仪的iMac上运行良好。但是对于我的另外两个beta测试者(两者都拥有与我完全相同的osx,10.6.7),我的应用程序窗口将无法在启动时打开。

在检查他们的控制台日志时,我将问题缩小到我的类MainWindowController(NSWindowController的子类)上的showWindow调用。

m_pMainWindowController= [[MainWindowController alloc] initWithWindowNibName:MAIN_WINDOW_NIB_NAME];
[m_pMainWindowController showWindow:nil];   

showWindow调用触发所有viewController的awakeFromNib方法被调用,这一切似乎都正确发生,但是在showWindow返回之前,这条消息从我的应用程序发送到控制台:

-[__NSPlaceholderDictionary initWithObjects:forKeys:]: number of objects (0) not equal to number of keys (2)
-[__NSPlaceholderDictionary initWithObjects:forKeys:]: number of objects (0) not equal to number of keys (2)

我发现这个bug很难修复,因为我无法在我的Mac上重现它,它似乎并不是源于我的任何代码。

非常感谢任何见解。

1 个答案:

答案 0 :(得分:0)

我明白了。问题出在drawRect函数中。我正在为字体属性初始化NSDictionary,并没有检查是否可以加载某个字体。因此将nil加载到NSDictionary中。经典的菜鸟错误。