【问题标题】:Swift can't retrieve images from parse.comSwift 无法从 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!) 

【问题讨论】:

标签: ios xcode swift parse-platform xcode7


【解决方案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 发送。

【讨论】:

  • 感谢您的回复,我该怎么做?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-08-05
相关资源
最近更新 更多