2015-07-21 2 views
0

Во-первых, чтобы быть простым, как изменить пустой образ UIImage на изображение, которое я сохранил в Parse? Это мой код до сих порParse & Swift-Randomizing images

var query = PFQuery(className:"Content") 
    query.getObjectInBackgroundWithId("mlwVJLH7pa") { 
     (post: PFObject?, error: NSError?) -> Void in 
     if error == nil && post != nil { 

      //content.image = UIImage 

     } else { 
      println(error) 
     } 
    } 

На вершине просто заменить пустой UIImageView, как я могу сделать изображение, которое он заменяется случайным? Я предполагаю, что больше не могу использовать objectId, потому что это специфично для строки, которую она представляет.

+0

Что такое разреженный? –

+0

Не знаю, почему я все время говорю об этом .... – Chrisicut

ответ

0

Прежде всего, вы должны использовать query.findObjectsInBackgroundWithBlock вместо query.getObjectInBackgroundWithId.

Это даст вам все ваши PFObjects. Возьмите случайный PFObject из возвращаемого массива, и теперь у вас есть один случайный PFObject, который вы можете установить для content.image.

Допустим, что ваш PFObject имеет «образ» атрибут как PFFile

Просто преобразовать PFFile в UIImage, делая что-то похожее на следующее (то, что вы должны использовать для хранения изображений с разбора.):

if let anImage = yourRandomPFObject["image"] as? PFFile { 
    anImage.getDataInBackgroundWithBlock { (imageData: NSData?, error: NSError?) -> Void in 

    let image = UIImage(data:imageData) 
    content.image = image 
    } 
} 
1

Я бы первым извлечь в ObjectIds из синтаксического анализа с getObjectsInBackgroundWithBlock, а затем выбрать случайный ObjectId из этого массива в переменную с именем ObjectId. Таким образом, вы сохраняете пользователя от запроса каждого объекта от синтаксического анализа и использования большого количества данных.

Во-вторых, я бы

getObjectInBackgroundWithId(objectId) 
    if error == nil { 
     if let image: PFFile = objectRow["image"] as? PFFile{ 
     image.getDataInBackgroundWithBlock { 
     (imageData: NSObject?, error: NSError?) Void in -> 
      if let imageData = imageData { 
      let imageView = UIImageView(image: UIImage(data: imageData)) 
      } 
     } 
    } 

По крайней мере, это работает для меня.