为啥从 Info.plist 中删除“Main nib file base name”会阻止应用程序执行?

Posted

技术标签:

【中文标题】为啥从 Info.plist 中删除“Main nib file base name”会阻止应用程序执行?【英文标题】:Why does removing "Main nib file base name from Info.plist" prevent application execution?为什么从 Info.plist 中删除“Main nib file base name”会阻止应用程序执行? 【发布时间】:2016-03-05 17:50:02 【问题描述】:

我已经删除了我的 XIB 文件,将其从 Info.plist 中删除,并且在我的 AppDelegate 中有这段代码。编辑:事实证明,从 Info.plist 中删除 Main nib 文件基本名称会导致我的应用程序无法运行?

我收到此错误:

Failed to connect (colorGridView) outlet from (NSApplication) to 
(NSColorPickerGridView): missing setter or instance variable

我故意删除了我的 XIB 文件,但为什么它阻止了程序的执行?

【问题讨论】:

嗨,请不要将问题编辑为完全不同的问题。如果需要,下次打开一个新的单独问题。 对不起,我的问题不像以前那样可以回答,因为实际的问题是我删除了 XIB。我应该重新编辑以添加原始代码吗? 【参考方案1】:

我解决了我的问题。事实证明,在 MainMenu.xib 中,AppDelegate 对象作为应用程序的委托附加。如果没有 XIB,应用程序将无法向其委托发送消息。

所以我创建了自己的 main.swift 文件,并在其中执行了以下操作:

NSApplication.sharedApplication()
let delegate = AppDelegate()
NSApplication.sharedApplication().delegate = delegate

然后我能够正常执行应用程序而没有任何错误。

【讨论】:

以上是关于为啥从 Info.plist 中删除“Main nib file base name”会阻止应用程序执行?的主要内容,如果未能解决你的问题,请参考以下文章

Xcode 找不到本地化的 info.plist

Xcode找不到本地化的info.plist

读取数据:文件“Info.plist”无法打开,因为没有这样的文件

如何重建我的 Info.plist?

不小心删除了支持文件夹下的 info.plist 文件:怎么办?

从 iOS 的 UITests 中读取 Info.plist?