我正在测试我的新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上重现它,它似乎并不是源于我的任何代码。
非常感谢任何见解。
答案 0 :(得分:0)
我明白了。问题出在drawRect函数中。我正在为字体属性初始化NSDictionary,并没有检查是否可以加载某个字体。因此将nil加载到NSDictionary中。经典的菜鸟错误。