当我在模块/框架的 Interface Builder 中使用一些自定义 UI 类时,一切都很完美。但是如果我在我的项目中为这个类编写扩展并设置自定义类(在 Interface Builder 中),Interface Builder 将设置自定义类的模块是我的项目。当我尝试在代码中使用这个自定义类时,Xcode 说:
"Unknown class _TtC9*modulename*18*MyCustomLabel* in Interface Builder file."
一个例子:
- TTTAttributedLabel 作为单独的模块(或抛出 cocoapods)添加到新项目中。
- 在情节提要中添加简单的 UILabel 并将自定义类设置为 TTTAttributedLabel
- 将 Outlet 添加到代码并打印(NSLog)此标签。
Xcode 写它是 TTTAttributedLabel。
- 向 TTTAttributedLabel 添加一个空扩展名
extension TTTAttributedLabel{ }
- 在 Interface Builder 中删除并重新设置标签的自定义类;
- 打印(NSLog)标签;
Xcode 会写警告信息并说我们的标签是 UILabel。
是 Interface Builder 错误还是我必须在扩展模块之前写一些东西?
信息:迅速,xcode6.3-7.3