我知道有很多关于这个问题的问题,但我已经尝试了大部分问题,试图找出它并没有成功。
问题: 起初我无法从助理编辑器中添加我的类,因为自定义类没有提取它。现在我正在尝试将我的按钮,视图等连接到它的插座。看起来它们是连接的,但是当运行应用程序并打开该视图控制器时,应用程序崩溃并且调试器打印: “Interface Builder文件中的未知类xxx。” 然后 “这个类不是关键值btnMenu的编码兼容。”
我查了一下:
我甚至尝试重新启动我的Mac,当然没有成功。
有人可以在这里瞎一些吗? 感谢。
答案 0 :(得分:69)
我刚刚使用UIViewController子类(使用Xcode 9 beta 2& Swift 4)发生了这种情况,解决方案是勾选'继承自目标',我在IB中设置自定义类。
如果您的视图恰好位于被复制到其他目标的.bundle
文件(例如框架/静态库)中,您将需要为每个xib / storyboard设置显式模块目标而不是让它继承自托管它的目标。
答案 1 :(得分:18)
答案 2 :(得分:2)
我在测试自定义UIView时遇到了这个问题,当时UIView在框架中。我创建了一个简单的应用程序,在情节提要的默认ViewController中创建了一个UIView,并将其类设置为MyCustomView。应用启动时,总是出现“界面生成器中的未知类”错误。我正在导入我的框架,然后检查了构建的产品中该框架的存在。
问题是我的测试应用程序代码从未真正使用过该框架。即使情节提要引用了它,但我猜它从未加载过。当我在测试应用程序代码中添加[MyCustomView load];
时,一切正常。
答案 3 :(得分:2)
在View Controller部分的Custom类中选中了称为“从目标继承模块”的对勾标记后,它可以正常工作。可以跟随图像。
要找到此> 选择您的视图控制器黄色按钮>,然后单击“ 显示身份检查器”>然后选中称为“ 从目标继承模块”的刻度线 ”
答案 4 :(得分:1)
好吧所以我不知道如何以及为什么,但是,我做了(再次)我以前尝试过的是:
现在看来Xcode知道我的班级.... 我仍然不知道问题是什么,但我想这与链接器有关。
答案 5 :(得分:1)
@Anthony Scott提到的内容是正确的,直到您使Framework_A依赖于Framework_B并且类来自Framework_B :)然后您需要取消选中复选框并提供包含给定类的Module。谢谢你的问题顺便说一句。我正在使用Commons框架用于其他框架,它帮助我实现了这一点;) 对于那些开发自定义Cocoa Touch Frameworks的人来说,这可能会有所帮助。
答案 6 :(得分:1)
我遇到了这个错误,因为我在创建它时意外地将我的类文件保存到Base.lproj文件夹中。
我通过右键单击Project Navigator中的文件并删除对它的引用来修复错误。然后我将文件通过Finder移动到正确的文件夹。然后我右键单击Project Navigator中的主要组并单击Add Files to "GroupName"...
并选择该类并单击Add
按钮。
之后错误就消失了。
答案 7 :(得分:1)
对于那些遇到此问题但使用故事板中的系统类为PKCanvasView
或ARView
的用户。
在将视图的Custom Class
设置为任何这些系统类之后,请确保将Module
设置为None
。接下来转到Link Binary with Libraries
中目标的Build Phases
,并手动链接包含该类的框架。最后一步是清理并删除派生数据(这很关键,否则问题将不会消失)。
答案 8 :(得分:0)
如果您尝试将类分配给ViewController,请确保您创建的类继承了UIViewController。 xCode无法识别你的类的唯一原因是它是一个不同类型的实例,比方说,它可能是一个UITableViewController类型。
请先检查班级的继承情况。
答案 9 :(得分:0)
检查班级名称。确保它对应于您在属性检查器中为ViewController分配的类。
答案 10 :(得分:0)
您需要使用自定义类实例化视图控制器。没有它你可能会有错误。
self.storyboard!.instantiateViewController(withIdentifier: "namePage") as! EmailAndPassword
答案 11 :(得分:0)
没有一个帮助。我的问题是我创建了自定义情节提要并添加了自定义类。但是我忘了从自动生成的主情节提要中使用初始视图控制器箭头,并将初始情节提要更改为我的自定义情节提要,这对我来说是固定的。
答案 12 :(得分:0)
我发现我遇到的问题是我指向的UIViewController的“自定义类”参数没有附加ViewController.swift文件!