Мне нужно добавить некоторые незначительные изменения в приложение для iOS.
Я унаследовал код Swift 3. который не может строиться на текущем Xcode 10.2.1
Мне почти удалось собрать его на Xcode 10.1, за исключением следующих ошибок в SwiftyXMLParser
, Accessor.swift
:
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
}
}
Error 1.1: Cannot assign value of type '[XML.Element]' to type '[XML.Accessor.Element]' (aka 'Array')
Error 1.2: Cannot assign value of type '[XML.Element]' to type '[XML.Accessor.Element]' (aka 'Array')
Error 1.3: Cannot invoke initializer for type 'XML.Accessor' with an argument list of type '(XML.Accessor.Element)'
Я изменил первую строку на
let generator: [XML.Element]
как предложено в https://github.com/yahoojapan/SwiftyXMLParser/issues/9 но теперь я получаю ошибку 2:
Error 2: Cannot assign value of type '[XML.Accessor.Element]' (aka 'Array') to type '[XML.Element]'
Как я могу это исправить, чтобы я мог собрать проект?
Обновлено: при попытке заархивировать проект я получаю больше ошибок, поскольку
Cannot convert value of type 'XML.Accessor.Element' (aka 'XML.Accessor') to expected argument type 'XML.Element'
в том же SwiftyXMLParser
, Accessor.swift
файле.
Я решил эти ошибки, используя XML.Element
вместо Element
там, где это необходимо.
Кстати, вы скачали версию самый последний этого проекта? Последний код отличается от того, что вы здесь показали, и без проблем компилируется в моем Xcode 10.2.1.
Я получил zip-файл с быстрым проектом, который я сейчас пытаюсь собрать :( Если я решу ошибки 11, 12, 13, я получаю ошибку 2, и я все еще не могу собрать проект.
Спасибо за подсказку, я посмотрел текущие файлы SwiftXMlparser и изменил строку, вызвавшую ошибку 2
case .failure(_):
generator = [] // instead of // generator = [Element]()
(Стоило изучить git, мне просто нужно помнить, чтобы использовать его функции, такие как «посмотреть в текущем исходном коде», как предложил @MartinR
Пример автономный, демонстрирующий проблему, был бы полезен.