我已经写了一个扩展,它搜索某个特定类型的对象的Collection
。Swift 4:非标称类型'T'不支持显式初始化
extension Collection {
/// Finds and returns the first element matching the specified type or nil.
func findType<T>(_ type: T.Type) -> Iterator.Element? {
if let index = (index { (element: Iterator.Element) in
String(describing: type(of: element)) == String(describing: type) }) {
return self[index]
}
return nil
}
}
现在在Xcode 9 /斯威夫特4中,摘录type(of: element))
加下划线,错误
非标称型 'T' 不支持显式初始化
的错误是奇怪因为我没有初始化一个对象。
这个答案https://stackoverflow.com/a/46114847/2854041表明也许这是一个类型问题 - 在Swift 4中String(描述:)初始化器的变化吗?
你为什么会做'字符串(说明:类型(:元))==字符串(描述:型)' ,当你可以直接比较类型变量,并且检查类型也有'is'? –