【发布时间】:2017-02-27 13:15:22
【问题描述】:
对于符合ModelProtocol 协议的唯一对象,我可以通过编写来成功测试泛型:
if let _ = T.self as? ModelProtocol.Type { /* Do some stuff */}
但是如果我需要测试[ModelProtocol] 协议的一致性,我会卡住。我试过了:
if let _ = T.self as? [ModelProtocol.Type] { /* Do some stuff */}
但是 Xcode 会抛出一个警告:
从“T.Type”转换为不相关类型“[ModelProtocol.Type]”总是失败
我应该如何处理这种情况?
【问题讨论】:
-
T是通用参数吗?如果是,您是否考虑过添加通用约束? -
是的,它是一个通用参数,不,我没有
-
“测试
[ModelProtocol]协议的一致性”是什么意思?[ModelProtocol]是一个数组,而不是一个协议。您的意思是要检查T是否为[ModelProtocol]?
标签: arrays swift generics protocols