我尝试使用Facebook用户朋友的个人资料图片的纹理创建SKSpriteNode
。我有正确的ID,但它仍然返回零。
我的代码:
let pictureData = NSData(contentsOfURL: NSURL(fileURLWithPath: "http://graph.facebook.com/\(friendObject["id"]!)/picture?type=large"))
picture.texture = SKTexture(image: UIImage(data: pictureData!)!)
这是我收到的错误:
致命错误:在解包可选值时意外发现nil
答案 0 :(得分:0)
您是否尝试在浏览器中运行该网址以确认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))
}
}
答案 1 :(得分:0)