调用函数无法识别类型

时间:2020-07-23 20:21:36

标签: swift xcode generics

使用通用协议调用函数时遇到问题。我定义了一个函数:

// Class function
func insertNumbers<I: IteratorProtocol>(_ iterator: I) where I.Element == Int {
    var values = iterator
    while let value = values.next() {
        self.db.append(value)
    }
}

用法:

let values = [1, 2, 3]
let iterator = values.makeIterator()
db.insertNumbers(iterator)

但是,当我尝试使用此功能时,Xcode对我大喊:

Cannot invoke ‘insertNumbers’ with argument list of type ‘(iterator: IndexingIterator<[Int]>'

我认为makeIterator()的返回值符合IteratorProtocolIteratorProtocol.Element == Int。我在做什么错了?

0 个答案:

没有答案