Swift 为什么';界面生成器在静态框架中看到我的类了吗?
有一个名为Swift 为什么';界面生成器在静态框架中看到我的类了吗?,swift,uiview,frameworks,interface-builder,static-libraries,Swift,Uiview,Frameworks,Interface Builder,Static Libraries,有一个名为MyFramework的Cocoa框架项目,其Mach-O类型设置为Static Library,其特点是MyView.swift,并带有以下声明: open class MyView: UIView { /* ... */ } class MyNewView: MyView { } 与此同时,另一个名为MyApp的项目静态链接到静态框架MyFramework。另外,MyApp的Main.storyboard有一个场景,其中有一个视图,其自定义类设置为MyView,模块设置为My
MyFramework
的Cocoa框架项目,其Mach-O类型设置为Static Library
,其特点是MyView.swift
,并带有以下声明:
open class MyView: UIView { /* ... */ }
class MyNewView: MyView { }
与此同时,另一个名为MyApp
的项目静态链接到静态框架MyFramework
。另外,MyApp
的Main.storyboard
有一个场景,其中有一个视图,其自定义类设置为MyView
,模块设置为MyFramework
每当实例化支持此场景的视图控制器时,该视图将作为默认的UIView
,我会在控制台中看到以下消息:
2018-06-23 18:22:29.114096+0700 MyApp[2318:415810] Unknown class _TtC15MyFramework15MyView in Interface Builder file.
然后,我向MyApp
的目标添加一个MyNewView.swift
,并声明如下:
open class MyView: UIView { /* ... */ }
class MyNewView: MyView { }
在不更改Main.storyboard
中的任何内容的情况下,我启动了应用程序,MyView
类被实例化,它的行为与假设的一样,消息不会出现
问题1:为什么会发生这种情况?如果未直接从代码中的任何位置导入或引用类型,则该类型是否已剥离或未注册到Objective-C运行时?或者它是不是有点懒洋洋的
问题#2:我可以用它做些什么,这样我就不需要应用这些变通方法了
更新:我重新启动了Xcode,问题并未持续,但界面生成器在视图的标识属性中键入
module
字段时,仍然不建议将MyFramework
作为模块,并且MyView
的@IBInspectable
未被解析,在界面生成器中,视图的属性中不显示。tumbleweed。你找到答案了吗?@Jmf是的,我找到了-在编辑中,我只是重新保存了故事板、项目、清理、关闭xcode、重新启动计算机、打开项目、构建,然后一切正常