我在项目中添加了一个新的nib文件,并尝试加载它。

然而,当我单击工具栏图标(该图标应将我带到我创建的视图)时,我会收到一个NSInternalInconstanceException,消息如下:

由于未捕获异常,正在终止应用“NSInternalInconstanceException”,原因:“-[UIViewController_loadViewFromNibNamed:bundle:]加载了“…”笔尖,但未设置视图出口

所以我打开了我的笔尖文件,看到了没有设置引用出口的视图。然而,我尝试单击并拖动“新引用出口”的圆圈到文件的所有者,但它不允许我……我需要做什么才能显示我的视图?


当前回答

只是在我的项目中出现了相同的错误,但原因不同。在我的例子中,我的自定义UITableViewController类中有一个名为“View”的IBOutlet设置。我知道“视图”是特殊的,因为它是基类的成员,但我不认为视图(不同的情况)也会有问题。我猜Cocoa的某些区域不区分大小写,加载xib可能就是其中之一。所以我把它重命名为DefaultView,现在一切都好了。

其他回答

对我来说,问题是由调用initWithNibName:bundle:引起的。我使用nib文件中的表视图单元格来定义表视图中的条目表单。因为我没有一个观点,所以用一个观点是没有意义的。相反,如果我改为调用initWithStyle:方法,并从那里加载nib文件,那么事情就如预期一样。

我想支持斯蒂芬·J。有些时候,X代码确实会感到困惑。我刚刚有过一次体验,我经常使用UI,并多次添加和删除了outlets。插座再也接不上电线了。我从来没有弄清楚具体的原因(我已经尝试了上面的所有解决方案),我只需要删除NIB并从头开始重新创建它,事实上,在NIB工作之前,它必须使用不同的名称。(XCode 4.6.1)为此浪费了几个小时。

我在意外删除xib引用并再次添加它时也遇到了同样的问题。我只是通过在文件所有者和视图之间建立连接来解决了这个问题。还要确保您的文件所有者的自定义类是您期望的viewController。

未设置视图标识-类标识。将其设置为适当的类后,问题得到解决。

选择文件所有者,然后打开身份检查器,给出与之对应的类名。如果上述方法都不起作用,并且仍然无法看到视图出口,则将新的引用出口连接到文件所有者,则可以看到视图出口。单击视图Outlet以在视图Outlet和文件所有者之间建立连接。运行该应用程序,工作正常。