Вот проблема, которую я пытаюсь разобрать XML в Swift, все работает, за исключением значений.Переменная недоступна вне функции Swift
import UIKit
class ItemParser: NSObject, XMLParserDelegate {
var parser = XMLParser()
var element:String!
var currentName:String = String()
func beginParsing()
{
parser = XMLParser(contentsOf:(NSURL(string:"URL"))! as URL)!
parser.delegate = self
parser.parse()
}
func parser(_ parser: XMLParser, didStartElement elementName: String, namespaceURI: String?, qualifiedName qName: String?, attributes attributeDict: [String : String])
{
element = elementName
}
func parser(_ parser: XMLParser, foundCharacters string: String)
{
if element.isEqual("name") {
currentName = string
}
print (currentName) -- displaying correctly
}
func parser(_ parser: XMLParser, didEndElement elementName: String, namespaceURI: String?, qualifiedName qName: String?)
{
if elementName.isEqual("inv") {
print("begginging")
print(currentName) -- displaying nothing
}
}
К моему пониманию, я указал всю переменную в правильном месте, но переменная не сохраняется вне функции. Что я делаю не так?
Спасибо, что сработали. Другое дело, что когда я аннулирую его в didStart, он отображается как пустой, но когда я аннулирую его в didend внутри оператора if, все работает нормально. огромное спасибо –