2015-06-18 2 views
2

Мне интересно, если я сделал что-то не так.Невозможно преобразовать PFFile в UIImage

У меня есть подкласс PFUser, который имеет свойство profileImage, который является PFFile

Есть некоторые случаи, когда я не сохраняю profileImage сразу к Разобрать и я только прикрепить его к localDatastore.

Но когда я попытался вернуть его с localDataStore и использовать getDataInBackgroundWithBlock. Он не возвращает никаких ошибок, но NSData, возвращаемая обратным вызовом , всегда равна нулю.

if let profileImage = PGUser.currentUser()?.profileImage { 
    profileImage.getDataInBackgroundWithBlock { (data: NSData?, error: NSError?) -> Void in 
     if error == nil { 
      if data != nil { 
       println("IMAGE DATA FOUND") 
       let image = UIImage(data: data!); 
       self.profileImageView.image = image; 
      } 
      else { 
       //DATA IS ALWAYS NIL  
       println("NO IMAGE DATA FOUND") 
      } 
     } 
    } 

} 
  1. PGUser.currentUser()?.profileImage является НЕ NIL
  2. Ошибка не возвращается функцией getDataInBackgroundWithBlock.
  3. BUT данные всегда NIL.

Любые мысли о том, что я делаю неправильно?

спасибо !!

+0

Что говорит 'error'? – Wain

+0

Проблема в том, что данные всегда равны нулю. Данные в getDataInBackgroundWithBlock. Что могло быть причиной этого? – JayVDiyk

+0

Я не знаю, возможно, параметр 'error' прольет некоторый свет на ситуацию. – Wain

ответ

1

Попробуйте это. Я решил проблему с этим

let profileImage = userPhoto["imageFile"] as PFFile 
userImageFile.getDataInBackgroundWithBlock { 
(imageData: NSData!, error: NSError!) -> Void in 
if !error { 
    let image = UIImage(data:imageData) 
self.profileImageView.image = image 
} 
} 
+1

этот код не будет компилироваться, так как параметр is '(NSData ?, NSError?)', И после того, как я изменил это, данные все еще ноль – JayVDiyk