我需要对iOS应用进行一些小的更改。
我继承了swift 3代码。不能在当前的Xcode 10.2.1上构建
除了在SwiftyXMLParser
,Accessor.swift
中出现以下错误之外,我几乎设法在Xcode 10.1上构建它:
public func makeIterator() -> AnyIterator<Accessor> {
let generator: [Element]
switch self {
case .failure(_):
generator = [Element]() // Error 2
case .singleElement(let element):
generator = [element] // Error 1.1
case .sequence(let elements):
generator = elements // Error 1.2
}
var index = 0
return AnyIterator {
let nextAccessor: Accessor?
if index < generator.count {
nextAccessor = Accessor(generator[index]) // Error 1.3
index += 1
} else {
nextAccessor = nil
}
return nextAccessor
}
}
错误1.1:无法将类型“ [XML.Element]”的值分配为类型“ [XML.Accessor.Element]”(又名“数组”)
错误1.2:无法将类型“ [XML.Element]”的值分配为类型“ [XML.Accessor.Element]”(又名“数组”)
错误1.3:无法使用类型为((XML.Accessor.Element)'的参数列表来调用类型为XML.Accessor的初始化程序
我将第一行更改为
let generator: [XML.Element]
如建议 https://github.com/yahoojapan/SwiftyXMLParser/issues/9 但我现在收到错误2:
错误2:无法将类型'[XML.Accessor.Element]'(也称为'Array')的值分配给类型'[XML.Element]'
如何修复它,以便我可以构建项目?
答案 0 :(得分:0)
case .failure(_):
generator = [] // instead of // generator = [Element]()
(值得学习git,我只需要记住使用它的功能,就像@MartinR建议的那样,作为“在当前源代码中查找”