Swift 无法从 parse.com 检索图像

Posted

技术标签:

【中文标题】Swift 无法从 parse.com 检索图像【英文标题】:Swift can't retrieve images from parse.com 【发布时间】:2015-08-16 18:45:47 【问题描述】:

我使用的是 6.4 的 Xcode,它工作正常,但是当我更新到 Xcode 7 时,查询似乎不适用于照片。

我在表格视图中获取用户名,但在模拟器 iPhone 5 上测试时,图像未显示我收到此错误:

App Transport Security 已阻止明文 HTTP (http://) 资源加载,因为它不安全。可以通过应用的 Info.plist 文件配置临时异常。

当我在 iPhone 6 上测试它时,我得到了这个错误:

致命错误:在展开可选值时意外发现 nil (lldb)

并在这条线上显示一条红线:

query.whereKey("user", equalTo: PFUser.currentUser()!.username!) 

【问题讨论】:

相关***.com/questions/32495059相关***.com/questions/32775234 【参考方案1】:

Apple 现在强制开发人员使用 ATS(HTTPS),但您可以在 info.plist 中通过添加禁用它

<key>NSAppTransportSecurity</key>  
     <dict>  
          <key>NSAllowsArbitraryLoads</key><true/>  
     </dict>

应该看起来像这样

访问Apple docs了解有关ATS的更多详细信息,请观看WWDC video session

您的第二个问题在下面解释

FPUser.currentUser 可以在用户退出时返回 nil,而您使用 ! 强制展开然后 calling username,因此如果用户未登录,则 currentUser 将返回 nil,您最终将调用 @ nil 上的 987654331@,因此你遇到了这个崩溃,你应该这样做。

if let user = PFUser.currentUser()

   query.whereKey("user", equalTo: user.username!) 

else

   // show login ui 

【讨论】:

感谢您的回复,如果我删除了!,我遇到了无法构建的错误,我该怎么办? 如果让你可以解决这个问题 如何将其添加到 info.plist ?我的 info.plist 看起来像这样:cut.by/GUhyY 添加新条目 NSAppTransportSecurity 并设置其类型 NSDictionary 然后添加一个项目 NSAllowsArbitraryLoads 并将其类型设置为布尔值并将其值设置为 true 谢谢你这么辛苦!我真的很感激,接受的答案:)【参考方案2】:

Apple 现在强制使用 HTTPS 连接,即 App Transport Security 消息。您仍在通过明文 HTTP 发送。

【讨论】:

感谢您的回复,我该怎么做?

以上是关于Swift 无法从 parse.com 检索图像的主要内容,如果未能解决你的问题,请参考以下文章

从 Parse.com (Swift) 检索数据

Parse.com 保存图像示例。只检索一张图像

如何在 PHP 中从 Parse 中检索图像文件?

从 Parse.com 检索搜索结果的数据

如何使用 Swift 2.0 在 Parse.com (REST API) 中上传图像并将其与用户关联

如何在Swift中调整图像大小?