Swift. URL-адрес фотографии в Facebook возвращается ноль

Я пытаюсь создать SKSpriteNode с текстурой аватарки от друга пользователей фейсбука. У меня есть правильное удостоверение личности, но оно все еще возвращается ноль.

Мой код:

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

Это ошибка, которую я получаю:

фатальная ошибка: неожиданно найден ноль при развертывании необязательного значения

2 ответа

Вы пытались запустить этот URL в браузере, чтобы убедиться, что идентификатор не равен нулю и 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))
      }
 }

Я разобрался с ответом, увидев этот пост:

Транспортная безопасность заблокировала открытый текст HTTP

Все, что мне нужно было сделать, это разрешить моему приложению подключаться к веб-сайту.

Другие вопросы по тегам