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

Workaround for loading a UIView subclass with generic constraints from Interface Builder?

假设我有一个 UIView 具有通用约束的子类:

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

我想从 IB 加载这个视图

这会使应用程序崩溃:"Unknown class _TtC5Test110CustomView in Interface Builder file"。这显然与这样一个事实有关,即 IB 不知道它需要传递什么类型才能使通用约束满足要求。我可以简单地在代码中实例化视图并传递约束类型。但我想知道是否有解决方法,以便仍然可以从 IB 加载视图。

But I wonder if there might be a workaround so the view could still be loaded from IB.

不,没有。 IB 是 Objective-C Cocoa。它无法查看或操作 Swift 泛型。

IB knows nothing of the type it needs to pass for the generic constraint to meet the requirement

IB 对 Swift 泛型一无所知。您能够将 CustomView 作为您的视图 class 输入这一事实本身就是一个错误。