即使接口生成器是一个MyClass,我得到一个错误时启动应用程序。
当MyClass是库的一部分时,就会发生这种情况,如果直接在应用程序目标中编译该类则不会发生这种情况。
即使接口生成器是一个MyClass,我得到一个错误时启动应用程序。
当MyClass是库的一部分时,就会发生这种情况,如果直接在应用程序目标中编译该类则不会发生这种情况。
当前回答
在我的情况下,类不能被找到,因为它是一个类定义在一个框架内的扩展,如下所示:
extension Buttons {
public class MyButton: UIButton {
// ...
}
}
当我从扩展中提取类时,Storyboard最终可以找到类(MyFrameworkButton):
extension Buttons {
public typealias MyButton = MyFrameworkButton
}
public class MyFrameworkButton: UIButton {
// ...
}
其他回答
这与Interface Builder没有任何关系,这里发生的是符号没有被Xcode从静态库中加载。要解决这个问题,你需要将-all_load -ObjC标记添加到项目(可能是目标)构建设置的其他链接器标记键。
由于Objective-C每个类只生成一个符号,我们必须通过使用-ObjC标志强制链接器加载类的成员,我们还必须通过添加-all_load链接器标志强制包含静态库中的所有对象。如果你跳过这些标志,你迟早会遇到无法识别的选择器错误,或者得到其他异常,就像你在这里观察到的一样。
在我的例子中是一个拼写错误的“自定义类”名称。确保您检查了您所定义的自定义类的故事板。
我有“Interface Builder file中的未知类favoritesbutton”,并将其追踪到一个故事书场景,其中有问题的按钮在身份检查器顶部的class字段中有一个伪自定义类“favoritesbutton”。我想把这个值放在下一个字段:Identity Label。
将其更改为“UIButton”解决了这个问题。
我在更改类名时看到了这个错误,尽管更新了所有相关的.h和.m。结果,我错过了更新.storyboard文件中的“customClass”值。这样问题就解决了。
在我的情况下,类不能被找到,因为它是一个类定义在一个框架内的扩展,如下所示:
extension Buttons {
public class MyButton: UIButton {
// ...
}
}
当我从扩展中提取类时,Storyboard最终可以找到类(MyFrameworkButton):
extension Buttons {
public typealias MyButton = MyFrameworkButton
}
public class MyFrameworkButton: UIButton {
// ...
}