NSXMLParserErrorMessage - не удалось открыть поток данных
Я застрял в странной проблеме. Я пытаюсь проанализировать XML-файл с веб-сервера, не поддерживающего HTTPS, для Apple Watch. Он отлично работает с WatchKit 2.0 и iOS 9.1 в Xcode Simulator, как только попробую встроить его в мои часы, он больше не работает ...
Я также установил ATS следующим образом во всех файлах Info.plist:
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
</dict>
Во время отладки я обнаружил следующую ошибку:
[0] (null) "NSXMLParserErrorMessage": "Не удалось открыть поток данных"
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)
}
}