【发布时间】:2015-08-20 20:01:42
【问题描述】:
我正在尝试将 watchOS 1 应用程序转换为 watchOS 2。 但我在尝试使用以下代码从 URL 加载图像时看到错误:
let url:NSURL = NSURL(string: "http://www.xxxxxxxx.com/xxx/xyz.jpg")!
let data:NSData = try! NSData(contentsOfURL:url, options:[])
imageone.setImage(UIImage(data: data))
错误是:
Error Domain=NSCocoaErrorDomain Code=256 "无法打开文件“xyz.jpg”。"用户信息={NSURL=http://www.xxxxxxxx.com/xxx/xyz.jpg}
我在互联网上读到这是因为新的应用程序传输安全协议。 我也读了放
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
</dict>
在 Watchkit 扩展的 info.plist 中,但出现相同的错误。 如果我在 HTTPS 域中使用图像也是一样的。
注意:在模拟器上它可以完美运行!
我正在使用 XCode 7 beta 5。
有人知道怎么解决吗?
更新 环顾网络,我发现也许使用 NSURLSession 我会解决问题,但我没有发现任何有用的东西。 有人可以帮我将我的代码转换为 NSURLSession 语法吗? 谢谢!
【问题讨论】:
-
你确定图片存在吗?我觉得这是 URL 的问题……
-
@Idris 是的,我尝试在 HTTP 或 HTTPS 上使用不同的图像,在 Mac 浏览器上工作,也在我在模拟器中执行的项目上工作
-
我刚刚遇到这个问题,请确保在 info.plist(应用程序和 Watchki 扩展...)中都使用 NSAllowsArbitraryLoads 并清理项目
-
@Jeremy Luisetti 我刚试过但没用。人们说它只需要在扩展上添加。在模拟器中完美运行
-
还有其他人知道如何解决这个问题吗?或者它可能是一个已知的错误?
标签: ios swift watchkit watchos-2