NSXMLParserErrorMessage - Não foi possível abrir o fluxo de dados
Estou preso em um problema estranho. Tento analisar um arquivo XML de um servidor da Web não HTTPS para o Apple Watch. Está funcionando muito bem com o WatchKit 2.0 e o iOS 9.1 no Xcode Simulator, assim que tenta compilá-lo no meu relógio, não está mais funcionando ...
Eu também defini o ATS conforme seguido em todos os arquivos Info.plist:
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
</dict>
Ao depurar, encontrei o seguinte erro:
[0] (nulo) "NSXMLParserErrorMessage": "Não foi possível abrir o fluxo de dados"
import Foundation
import WatchKit
class parkingXMLParser : NSObject, NSXMLParserDelegate{
var parser = NSXMLParser()
var elements = NSMutableDictionary()
var element = NSString()
let menuXMLURL = "http://ta-app.hslu.ch/parkplatz/HSLUHorw.xml"
var parkingCounterFree = NSMutableString()
var parkingCounterTimestamp = NSMutableString()
func beginParsing()
{
parser = NSXMLParser(contentsOfURL:(NSURL(string:menuXMLURL))!)!
parser.delegate = self
}
func parse() -> Bool {
return parser.parse()
}
func getParkingCounterFree() -> String {
return parkingCounterFree as String;
}
func getParkingCounterFreeTimestamp() -> String {
return parkingCounterTimestamp as String;
}
func parser(parser: NSXMLParser, didStartElement elementName: String, namespaceURI: String?, qualifiedName qName: String?, attributes attributeDict: [String : String])
{
element = elementName
if (elementName as NSString).isEqualToString("ph")
{
elements = NSMutableDictionary()
elements = [:]
}
}
func parser(parser: NSXMLParser, foundCharacters string: String)
{
if element.isEqualToString("frei") {
parkingCounterFree.appendString(string)
}
else if element.isEqualToString("zeitpunkt") {
parkingCounterTimestamp.appendString(string)
}
}
func parser(parser: NSXMLParser, parseErrorOccurred parseError: NSError) {
NSLog("failure error: %@", parseError)
}
}