为什么在检查通用函数中的可选UIView参数时会出错?

时间:2016-01-02 20:23:50

标签: ios swift

我在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值,但我正在尝试理解为什么会发生此错误。

1 个答案:

答案 0 :(得分:2)

您想检查传递给此功能的视图是否不是nil这样的

if view != nil {
    pool.addObject(view)
}

您正在检查类型(T)是否为零并且这始终为真,您的变量与其类型之间存在混淆。