我在Swift中有一个泛型函数,它接受一个符合特定协议的可选UIView对象:
func addViewToPool<T: UIView where T: ViewPoolProtocol>(inout view: T?) {
if T != nil {
pool.addObject(T)
}
}
在第二行我试图确保对象不是零。但是,我收到了警告:
Value of type 'T.Type' can never be nil, comparison isn't allowed
我可以打开它或添加潜在的nil值,但我正在尝试理解为什么会发生此错误。
答案 0 :(得分:2)
您想检查传递给此功能的视图是否不是nil
这样的
if view != nil {
pool.addObject(view)
}
您正在检查类型(T
)是否为零并且这始终为真,您的变量与其类型之间存在混淆。