0

SKSpriteNodeFacebook ユーザーの友人からのプロフィール写真のテクスチャを作成しようとしています。私は正しい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

その 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 に答える