2015-08-27 37 views
0

我收到以下錯誤:[1]「不能使用類型爲'String'的索引對類型爲'[AnyObject]'的類型的值進行下標[2]無法使用'saveInBackgroundWithBlock'類型的參數列表 '((BOOL,NSError) - >無效)'。我試圖整數保存到現有parse.com列保存到現有的Parse.com對象

func heatUp(){ 
    let findDataParse = PFQuery(className:"flyerDataFetch") 
    findDataParse.whereKey("objectId", equalTo: objectID) 
    findDataParse.findObjectsInBackgroundWithBlock{ 
     (ObjectHolder: [AnyObject]?, error: NSError?) -> Void in 
     if (error == nil) { 
       //[1] First error 
       if let ObjectHolder = ObjectHolder { 
        ObjectHolder["attention"] = self.count 
       } 
       //[2] Second error 
       ObjectHolder.saveInBackgroundWithBlock { 
        (success: Bool, error: NSError?) -> Void in 
        if (success){ 
         println("successful save") 
        } 
        } 
       } 
       } 

}

回答

1

把PFObject代替anyobject(將其轉換)和錯誤刪除它或不把它作爲可選

+0

(ObjectHolder:PFObject,error:NSError?) - > Void in轉換的意思是什麼? – Cari95

+0

您正在查詢名爲flyerDataFetch的PFObject ...並且您想要獲取對象的結果(在此特定示例中,因爲id是唯一的,所以只有一個對象)... u使後臺線程通過對象進行查詢,並且使用anyObjects的結果獲取查詢(正如我們所說 - 你只能得到一個對象,但該對象存儲在數組中)。要讀取這個對象,你必須在PFObject中轉換它,這樣parse才能理解它是來自db的一個對象,並且它可以讀取它。所以你解開anyobject作爲pfobject(如果let .. as?PFObject),當你這樣做時,你可以通過object [「property」]方法讀取它的屬性 –

0

變化

(ObjectHolder: [AnyObject]?, error: NSError?) -> Void in 

(ObjectHolder: [String]?, error: NSError?) -> Void in 
0

我不是100%肯定這是什麼代碼是應該做的,但是......

錯誤1:ObjectHolder是AnyObject類型的數組。你正試圖獲得ObjectHolder的「關注」索引,這是不可能的。請記住,只有數值纔會進入數組的[]以進行索引。例如,如果你想獲得數組中的第一個值:

value = array[0] 

你可能想使用的ObjectHolder [0],然後做該列的編輯中的ObjectHolder第一PFObject。

object = ObjectHolder[0] 
object["attention"] = self.count 

錯誤2:再次嘗試在對象列表上執行一組操作。使用上面剛剛創建的對象,請執行以下操作:

object.saveInBackgroundWithBlock {... 
相關問題