2015-09-13 29 views
0

這是從parse我的查詢代碼:查詢,如果對象不存在

func queryFromParse(){ 
     //var query = PFQuery(className: "Posts") 
     var query = PFQuery(className: "currentUploads") 
     query.orderByDescending("createdAt") 
     query.findObjectsInBackgroundWithBlock { (objects:[AnyObject]?, error:NSError?) -> Void in 
      if error == nil 
      { 
       if let newObjects = objects as? [PFObject] { 

        for oneobject in newObjects { 
         let text = oneobject["imageText"] as! String 
         let username = oneobject["username"] as! String 
         let time = oneobject.createdAt! 
         let userImage = oneobject["imageFile"] as! PFFile 
         let imageURL = userImage.url // <- Bruker nå userImage.URL, henter ikke bildefilen med en gang 

         var OneBigObject = Details(username: username, text: text, CreatedAt: time, image: imageURL!) 

         self.arrayOfDetails.append(OneBigObject) 

         dispatch_async(dispatch_get_main_queue()) { self.collectionView.reloadData() } 

        } 
       } 
      } 
     } 
    } 

我得到錯誤代碼:

let userImage = oneobject["imageFile"] as! PFFile 

fatal error: unexpectedly found nil while unwrapping an Optional value

我知道爲什麼,因爲一個在解析行不包含圖像: enter image description here

任何想法?如果那裏沒有圖像,我該怎麼做才能避免崩潰?

回答

1

在這裏你去,嘗試一些likt這樣的:

func queryFromParse(){ 
     var query = PFQuery(className: "currentUploads") 
     query.orderByDescending("createdAt") 
     query.findObjectsInBackgroundWithBlock { (objects:[AnyObject]?, error:NSError?) -> Void in 
      if error == nil 
      { 
       if let newObjects = objects as? [PFObject] { 

        for oneobject in newObjects { 
         let text = oneobject["imageText"] as! String 
         let username = oneobject["username"] as! String 
         let time = oneobject.createdAt! 

         if let userImage = oneobject["imageFile"] as? PFFile { 
          let userImage = oneobject["imageFile"] as! PFFile 

          let imageURL = userImage.url // <- Bruker nå userImage.URL, henter ikke bildefilen med en gang 

          var OneBigObject = Details(username: username, text: text, CreatedAt: time, image: imageURL!) 

          self.arrayOfDetails.append(OneBigObject) 

          dispatch_async(dispatch_get_main_queue()) { self.collectionView.reloadData() } 
         } 
        } 
       } 
      } 
     } 
    } 
+0

它的工作,非常感謝:)) –

0

可選解開這個對象:

let imageFile = oneobject["imageFile"] as PFFile 
imageFile.getDataInBackgroundWithBlock { 
    (imageData: NSData?, error: NSError?) -> Void in 
    if error == nil { 
    if let imageData = imageData { 
     let image = UIImage(data:imageData) 
    } 
    } 
} 
+0

但是,如果我有一個列表發生什麼事1000張圖片,只有1張沒有圖片?那麼它不會顯示任何圖像,或? –

+0

它會顯示圖像,如果它存在,如果它不存在它將不會.. –

+0

嗯,這裏有什麼錯誤嗎?:http://s16.postimg.org/ne1ciqm6d/Screen_Shot_2015_09_13_at_22_24_08.png –

0

嘗試使用這種

if let userImage = oneobject["imageFile"] as? PFFile { 
      let imageURL = userImage.url 
     } 
+0

如果你喜歡這樣:http://pastebin.com/pKWR9cga - 仍然給了我同樣的錯誤.. –

相關問題