XML swift 中的解析器 2 returns false 在设备上

XML parser in swift 2 returns false on device

当我 运行 在 Xcode 中使用 iOS 模拟器选择以下代码时,它解析没有问题,但是当我 运行 它在设备上时(iPhone 5c) 我得到: 加载失败xml XML 在 0:0 解析失败:可选("The operation couldn’t be completed. (Cocoa error -1.)")

我尝试了不同的 xml 文件,但它看起来像是一个安全问题!? 我应该在我的项目中的某个地方设置权限吗?

let url:String="http://images.apple.com/main/rss/hotnews/hotnews.rss#sthash.TyhRD7Zy.dpuf"
let urlToSend: NSURL = NSURL(string: url)!

parser = NSXMLParser(contentsOfURL: urlToSend)!
parser.delegate = self

if !parser.parse() {
   let error = parser.parserError
   let line = parser.lineNumber
   let col = parser.columnNumber
   print("XML parsing failed at \(line):\(col): \(error?.localizedDescription)")
}`

为了帮助隔离错误,首先将 URL 的内容加载到字符串中可能会有所帮助 – 这将帮助您隔离是安全问题还是解析问题。您可能还想取消强制展开并使用 if/let 以便您可以更清楚地看到错误流。

话虽这么说,这里有一些事情要检查:

1) 设备是否在线?

2) 设备是否连接到阻止某些资源的代理、VPN 或其他中介?

3) 当您使用 Safari 时,设备是否能够达到 URL?

4) 您的解析器能够读取其他 RSS 提要吗?

根据我的经验,2) 通常是问题所在。