即使接口生成器是一个MyClass,我得到一个错误时启动应用程序。
当MyClass是库的一部分时,就会发生这种情况,如果直接在应用程序目标中编译该类则不会发生这种情况。
即使接口生成器是一个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中出现的名称:
其他回答
在我的例子中,问题是一个死的IBOutlet链接。一旦这个问题解决了,一切又恢复了正常。
我有“未知类RateView在接口生成器”,其中RateView是UIView的子类。我已经在Storyboard场景中放置了一个UIView,并将自定义类字段更改为RateView。尽管如此,这个错误还是出现了。
为了调试,我将我的类的名称改为RateView2,并将所有引用更改为匹配,除了UIView的自定义类字段。错误消息仍然像以前一样出现,RateView是缺失的类。这确认了错误消息与Custom类字段的值相关。我将这个值更改为RateView2,错误消息更改为“未知类RateView2在接口生成器”。某种程度上的进步。
最后,我在文件检查器中检查源代码文件本身。在那里,我发现源代码文件(我从教程中复制的)与我的Target没有关联。换句话说,它没有目标会员。我选中了使类的源代码文件成为目标应用程序成员的复选框,错误消息消失了。
每个苹果文档
对于64位和iPhone操作系统应用程序,有一个链接器错误 阻止-ObjC从静态库中加载对象文件 只包含类别,不包含类。解决方法是使用 -all_load或-force_load标志。
简而言之,在你的“构建设置”中添加-all_load到“其他链接器”标志,你应该没问题。
http://developer.apple.com/library/mac/qa/qa1490/_index.html
我沿着劳拉建议的路线修复了这个问题,但我不需要重新创建文件。
使用XCode 4,在Project Navigator中,选择包含它要抱怨的类的.m文件 点击查看->实用工具->显示文件检查器(这将显示文件检查器在右边,带有。m- File信息) 打开Target Membership部分,并确保为这个.m文件选择了目标
当我把我的.m文件添加到我的项目时,由于某种原因,它没有把它添加到我的默认目标中,这导致我得到你提到的错误。
在我的情况下,类不能被找到,因为它是一个类定义在一个框架内的扩展,如下所示:
extension Buttons {
public class MyButton: UIButton {
// ...
}
}
当我从扩展中提取类时,Storyboard最终可以找到类(MyFrameworkButton):
extension Buttons {
public typealias MyButton = MyFrameworkButton
}
public class MyFrameworkButton: UIButton {
// ...
}