ios - swift 2 中的 XML 解析器在设备上返回 false

标签 ios xml swift nsxmlparser

当我在选择了 iOS 模拟器的 Xcode 中运行以下代码时,它的解析没有问题,但是当我在设备 (iPhone 5c) 上运行它时,我得到: 加载 xml 失败 XML 解析在 0:0 失败:可选(“操作无法完成。(Cocoa 错误 -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) 通常是问题所在。

关于ios - swift 2 中的 XML 解析器在设备上返回 false,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34250341/

相关文章:

xml - 无法将名称 X 解析为递归 xml 架构中的元素声明组件

ios - 如何为uiview制作淡出边框

iphone - 推送 ABPersonViewController 时出现问题

Android:具有动态 actionBar 颜色和 DrawerLayout 的透明状态栏

android - 如何将 ListView 项目的用户名、电子邮件和地址发送到 android 中的 onItemClick 下一个 Activity

swift - 你应该如何处理 UIAlertAction 的闭包参数

ios - 动画layer.mask如何变化

ios - Appcelerator SSL 证书无效

iOS 8 自动单元格高度 - didSelectRowAtIndexPath 导致 UItableview 跳到顶部

iOS自定义后退按钮过渡不良