Xcode 10.1,“元素”与“ XML.Accessor.Element”冲突?

时间:2019-05-29 11:16:25

标签: swift xml xcode

我需要对iOS应用进行一些小的更改。

我继承了swift 3代码。不能在当前的Xcode 10.2.1上构建

除了在SwiftyXMLParserAccessor.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]'

如何修复它,以便我可以构建项目?

1 个答案:

答案 0 :(得分:0)

case .failure(_):
                generator = [] // instead of // generator = [Element]()

(值得学习git,我只需要记住使用它的功能,就像@MartinR建议的那样,作为“在当前源代码中查找”