2015-11-19 84 views
0

我想上傳用下面的代碼的數組,但我在倒數第二行它說Cannot assign to value: function call returns immutable array解析:更新陣列

for object in objects! { 
    let newstring = NSString(format: ".0f", self.slider.value) 
    var newarray = [object.objectForKey("times")] 
    newarray.append(newstring) 
    object.objectForKey("times") = newarray 
    object.saveInBackground() 
} 

「泰晤士報」得到一個錯誤的類型數組中順便解析一下。

回答

1

而不是請求數組並嘗試設置它,您應該使用setObject:forKey:來替換現有的值。

object.setObject(newarray, forKey: "times") 
+0

那好吧,所以只需更換第二次與 – somepers

+1

最後一行只是爲了澄清爲什麼你得到了錯誤object.objectForKey(「時代「)是一個函數調用,它返回鍵」times「處的值,它是一個不可變數組。然後您嘗試爲該不可變數組賦值。即使數組是可變的也不會更新字典中數組的值。這就是爲什麼你需要使用像這個答案給出的setObject()。 – NSGangster

0

我可以建議使用addObject:forKey:方法嗎?

for object in objects! { 
    let newstring = NSString(format: ".0f", self.slider.value) 
    object.addObject(newstring, forKey: "times") 
    object.saveInBackground() 
} 

這是很乾淨,不需要檢索:)