Сохранение в существующий объект Parse.com
Я получаю следующие ошибки [1]"Невозможно добавить значение типа '[AnyObject]" с индексом типа "String". [2] Невозможно вызвать "saveInBackgroundWithBlock" со списком аргументов типа "((Bool, NSError?) -> Void)'. Я пытаюсь сохранить целое число в существующем столбце 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")
}
}
}
}
}
3 ответа
Поместите PFObject вместо anyobject (конвертируйте его) и в случае ошибки удалите его или не устанавливайте как опциональный
Я не уверен на 100%, что должен делать этот код, но...
Ошибка 1: ObjectHolder - это массив типов AnyObject. Вы пытаетесь получить индекс "внимания" ObjectHolder, что невозможно. Помните, только числовые значения входят в [] массива для индексации. Например, если вы хотите получить первое значение в массиве:
value = array[0]
Вы, вероятно, хотите получить первый объект PFObject в ObjectHolder, используя ObjectHolder[0], а затем выполните редактирование этого столбца.
object = ObjectHolder[0]
object["attention"] = self.count
Ошибка 2. Опять же, вы пытаетесь выполнить массив операций со списком объектов. Используя объект, который вы только что создали, выполните:
object.saveInBackgroundWithBlock {...
+ Изменить
(ObjectHolder: [AnyObject]?, error: NSError?) -> Void in
к
(ObjectHolder: [String]?, error: NSError?) -> Void in