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

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

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

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


当前回答

如果您已经尝试了所有方法,但仍然出现此错误,请尝试从头开始重新创建类文件,但请记住选中“同时创建XIB文件”复选框。这将在单独创建这些文件时自动链接一些未链接的项目。创建后,您可以将所有内容剪切并粘贴到新的XIB上,它应该可以正常工作。

我发现这个问题特别是在Swift中单独创建文件。

其他回答

我在Xcode 9.3中遇到了类似的问题,将“文件所有者”属性检查器下的“模块”设置为项目模块为我解决了这个问题。

我也有同样的问题,我的问题是我在ViewControllers笔尖上添加了另一个本地化(英语),所以我的本地化德语应用程序找不到本地化英语的笔尖!!希望这对任何人都有帮助!

以下是对我有用的:

打开导致问题的XIB文件单击左栏上的文件所有者图标(顶部的一个,看起来像一个黄色轮廓框)如果您没有看到右侧边栏,请单击工具栏中“视图”上方的第三个图标。这将显示右侧边栏在右侧边栏中,单击第四个选项卡——看起来有点像报纸的选项卡在顶部的“自定义类”下,确保类是与此视图对应的ViewController的名称。如果没有,请输入在右侧边栏中,单击最后一个选项卡,该选项卡看起来像一个带箭头的圆圈你应该看到“outlets”下面有“view”。将旁边的圆圈拖到左栏上的“view”图标上(底部的一个,看起来像一个白色正方形,有一个粗灰色的轮廓保存xib并重新运行

如果您已经尝试了所有方法,但仍然出现此错误,请尝试从头开始重新创建类文件,但请记住选中“同时创建XIB文件”复选框。这将在单独创建这些文件时自动链接一些未链接的项目。创建后,您可以将所有内容剪切并粘贴到新的XIB上,它应该可以正常工作。

我发现这个问题特别是在Swift中单独创建文件。

当您有一个Swift代码使用@objc引用不同的命名空间时,请确保使用Objective-C类名:

@objc(NamespacedSomeViewController)
class SomeViewController: UIViewController {
....

在这种情况下,您需要在IB中使用NamespacedSomeViewController。