0

我正在尝试SKSpriteNode使用来自 facebook 用户朋友的个人资料图片的纹理创建一个。我有正确的 ID,但它仍然返回 nil。

我的代码:

let pictureData = NSData(contentsOfURL: NSURL(fileURLWithPath: "http://graph.facebook.com/\(friendObject["id"]!)/picture?type=large"))
picture.texture = SKTexture(image: UIImage(data: pictureData!)!)

这是我收到的错误:

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

4

2 回答 2

0

我通过看到这篇文章找出了答案:

传输安全已阻止明文 HTTP

我所要做的就是让我的应用程序连接到网站。

于 2016-08-07T12:01:26.993 回答
0

您是否尝试在浏览器中运行该 URL 以确认 ID 不是 nil 并且该 URL 有效?

我想我还记得我在使用 FBSDK 时遇到过这个问题。在下载 URL 之前,正在调用尝试使用该图像的函数。您需要将代码放在这样的 URL 会话中。

func getFBProfileImage(profileId: String, completion: ((image: UIImage?) -> Void)) {
let url:String = "http://graph.facebook.com/\(profileId)/picture?type=large"

let task = NSURLSession.sharedSession().dataTaskWithURL(NSURL(string: url)!) {(data, response, error) in
    completion(image: UIImage(data: data))
}

   task.resume()
 }

 getFBProfileImage(friendObject(id)) { image     in
   dispatch_async(dispatch_get_main_queue()) {
        picture.texture = SKTexture(image:UIImage(data: image))
      }
 }
于 2016-08-07T01:42:41.020 回答