2015-06-12 45 views
1

這應該通常很容易和直接,但我努力尋找答案。我希望能夠將objectId分配給數組,因此當我想更新列時,我可以使用query.getObjectInBackgroundWithId。我正在執行初始查詢並將找到的值分配給字典。不幸的是,應用程序崩潰,當我嘗試分配列OBJECTID和我fatal error: unexpectedly found nil while unwrapping an Optional valueParse.com查詢返回零對象和崩潰的應用程序

var query = PFQuery(className:"classname") 
    query.whereKey("available", equalTo:true) 
    query.findObjectsInBackgroundWithBlock({ 
     (objects: [AnyObject]?, error: NSError?) -> Void in 

     if error == nil { 
      println("Successfully retrieved \(objects!.count)") 

      if let objects = objects as? [PFObject] { 
       for object in objects { 

        let x = dict(aColumn1: (object["column1"] as! String), aColumn2: (object["column2"] as! String), aId: (object["objectId"] as! String)) 

        dictArr.append(x) 

       } 
      } 
     } else { 
      // Log details of the failure 
      println("Error: \(error!) \(error!.userInfo!)") 
     } 
     } 
    ) 
+0

這一行 「令x =陣列(aColumn1:(對象[」 列1 「]作爲字符串),aColumn2:(對象![」 列2" ]作爲字符串), aId:(object [「objectId」] as!String))「是通用的問題。因爲列1或列2的對象內的內容結果爲零,並寫爲!你迫使包裝零,導致崩潰。 –

+0

column1和column2返回結果。如果我擺脫了'aId:(object [「objectId」] as!String)',程序運行正常,沒有錯誤並且它填充數組。 objectId生成的問題很奇怪,因爲它是爲解析中的每個類自動生成的。 –

+0

是的,我知道它是從解析中自動生成的,你是否在使用includekey方法來包含該類的對象,就像我最初在解析時新添加的那樣,我忘記添加,然後對objectid變得不適用。 –

回答

0

嘗試創建自己的數組是這樣的:

let x = [(object["column1"] as! String),(object["column2"] as! String), (object["objectId"] as! String)] 

,但似乎更喜歡你想要一本字典相反,如果是可以嘗試此情況下:

let x = [("aColumn1": (object["column1"] as! String), "aColumn2": (object["column2"] as! String), "aId": (object["objectId"] as! String))] 
+0

aId已經被賦予了一個String類型。如果我刪除'aId:(object [「objectId」] as!)'我可以檢索這些對象並存儲它們。 objectId是導致問題的唯一一個。 –

相關問題