可以说我有一个具有通用约束的UIView子类:

class CustomView<DataType: Codable>: UIView {
    var model: DataType?
}


我想从IB加载此视图

swift - 从Interface Builder加载具有通用约束的UIView子类的解决方法?-LMLPHP

这会使应用程序崩溃:“ Interface Builder文件中的未知类_TtC5Test110CustomView”。显然,这与以下事实有关:IB不知道为满足通用约束而需要传递的类型。我可以简单地在代码中实例化视图并传递约束类型。但是我想知道是否有解决方法,以便仍然可以从IB加载视图。

最佳答案

但是我想知道是否有解决方法,以便仍然可以从IB加载视图。


不,没有。 IB是Objective-C可可粉。无法查看或操纵Swift泛型。


  IB不知道通用约束满足要求所需传递的类型


IB完全不了解Swift泛型。您能够输入CustomView作为视图类的事实本身就是一个错误。

关于swift - 从Interface Builder加载具有通用约束的UIView子类的解决方法?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/60078477/

10-14 20:51