2015-09-23 5 views
-1

Я работаю над приложением, использующим Parse в качестве backend. Всякий раз, когда я пытаюсь загрузить изображение, NSData, который я получаю, не пуст, но всякий раз, когда я пытаюсь преобразовать его в UIImage, я получаю изображение nil.UIImage не преобразовывает NSData правильно

Я уже проверил все изображения на Parse, и я вижу/получаю все из базы данных. Я также повторно загрузил изображения на случай, если с ними что-то не так.

Вот кусок кода я получаю NSData и преобразовать его в UIImage:

let myImage = object.objectForKey("imagem") as! PFFile 
myImage.getDataInBackgroundWithBlock({(imageData : NSData?, error : NSError?) -> Void in 
       if error == nil { 
        if let imageData = imageData{ 
          if let newImage = UIImage(data: imageData){ 
           myClass.imagem = newImage 
          }  
         } 
        } 
        self.collectionView?.reloadData() 
       }) 
+0

Как вы преобразующий изображение в данные? –

+0

где вы проверяете, нет ли изображения или нет? 'getDataInBackgroundWithBlock()' - это функция async, которая может привести к вашему наблюдению. Функция не завершена, когда вы проверяете свое изображение. Поэтому, пожалуйста, предоставьте информацию, которую вы проверили, если изображение равно нулю или нет. – dehlen

+0

Всякий раз, когда я загружаю изображение на Parse, оно преобразуется, я думаю. Я уже делал этот процесс пару раз с успехом. –

ответ

0

Оказалось, что я делал правильно, но я работал через прокси-сервер и всякий раз, когда данные отправлялись в мое приложение, он не возвращал полные NSData. Поэтому проблема заключается в прокси, а не в коде. Спасибо за ответы.

0

попробуйте этот код. Надеюсь, это поможет вам.

let userImageFile = anotherPhoto["imageFile"] as PFFile 

userImageFile.getDataInBackgroundWithBlock 
{ 
    (imageData: NSData?, error: NSError?) -> Void in 
    if error == nil 
    { 
     if let imageData = imageData 
     { 
      let image = UIImage(data:imageData) 
     } 
    } 
} 

Для получения дополнительной информации вы можете обратиться к документации по анализу. см. это https://www.parse.com/docs/ios/guide#files-images

0

Попробуйте использовать следующий фрагмент кода

if let imageData = imageData 
{ 
var newImage : UIImage! = UIImage(data: imageData!) 
if image 
{ 
    myClass.imagem = newImage 
} 
} 
Смежные вопросы