即使接口生成器是一个MyClass,我得到一个错误时启动应用程序。

当MyClass是库的一部分时,就会发生这种情况,如果直接在应用程序目标中编译该类则不会发生这种情况。


当前回答

我今天使用Swift确实遇到了这个问题。

我修改了一个类Model.h + Model。m to a Model.swift。 该对象在Interface Builder中使用class = Model。

一旦我替换了对象,类就不能再加载了。

我所要做的就是把IB的课程参考改为:

Class = Model
Module = 

to

Class = Model
Module = <TARGETNAME>

您将在构建设置中找到<TARGETNAME>。它也是在你生成的Swift-Header中出现的名称:

其他回答

在我的例子中,这是因为我在.h文件中声明了UITableView单元格的子类的子类(两个子类的声明都在同一个.h文件中),但忘记在.m文件中对第二个子类进行空实现。

不要忘记实现你在.h文件中声明的子类的任何子类!听起来很简单,但很容易忘记,因为如果你在每个.h/中使用一个类,Xcode会为你做这件事。m文件。

我沿着劳拉建议的路线修复了这个问题,但我不需要重新创建文件。

使用XCode 4,在Project Navigator中,选择包含它要抱怨的类的.m文件 点击查看->实用工具->显示文件检查器(这将显示文件检查器在右边,带有。m- File信息) 打开Target Membership部分,并确保为这个.m文件选择了目标

当我把我的.m文件添加到我的项目时,由于某种原因,它没有把它添加到我的默认目标中,这导致我得到你提到的错误。

在我的例子中是一个拼写错误的“自定义类”名称。确保您检查了您所定义的自定义类的故事板。

有时IBuilder会错过customModule="AppName" customModuleProvider="target"

要修复它,打开storyboard作为源代码并替换这一行:

<viewController storyboardIdentifier="StoryboardId" id="SomeID" customClass="CustomClass"
sceneMemberID="viewController">

:

<viewController storyboardIdentifier="StoryboardId" id="SomeID" customClass="CustomClass"
 customModule="AppName" customModuleProvider="target" sceneMemberID="viewController">

删除错误的最好方法是: 1)选择类文件(.m) 2)在“目标会员”下,“勾选”项目名称条目