gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 10:25:32 24 4
gpt4 key购买 nike

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

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

我想从 IB 加载此 View

enter image description here

这会使应用程序崩溃:“Interface Builder 文件中存在未知类 _TtC5Test110CustomView”。这显然与以下事实有关:IB 对于满足要求的通用约束所需传递的类型一无所知。我可以简单地在代码中实例化 View 并传递约束类型。但我想知道是否有解决方法,以便 View 仍然可以从 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 作为 View 类,这本身就是一个错误。

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

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com