Я выбираю ячейку в виде таблицы, передавая значение для просмотра контроллера, а затем разрешаю пользователю обновлять строку в Parse (работает на Heroku), используя код ниже.Невозможно обновить столбец imagefile в Parse using Swift
Проблема, с которой я столкнулся, - обновлен столбец «title», но столчик файла изображения не обновляется с выбранным новым изображением. Я вижу, что новое изображение действительно передается в код.
Я использую синхронный вызов, потому что не хочу, чтобы пользователь двигался вперед, если запись не сохраняется.
что может быть неправильным? Тот же код для сохранения нового объекта отлично работает.
Благодаря Ashish
let query = PFQuery(className:"class")
query.whereKey("objectId", containsString: passedObject.objectId)
do {
let results = try query.findObjects()
if results.count == 0 {
print("error")
success = false
} else {
//update
do {
let obj = results.first
obj!["title"] = Title.text!
let imageData = UIImageJPEGRepresentation(imageOutlet.image!,0.2)
let imageFile = PFFile(name: "image.png", data: imageData!)
//try imageFile?.save() // is this needed?
obj!["imagefile"] = imageFile
try obj!.save()
self.success = true
} catch let er as NSError {
print(" error while updating - \(er)")
}
}
} catch {
print("error while querying \(error)")
success = false
}
Можете ли вы выполнить функцию save() в файле и посмотреть, получаете ли вы результаты? Также я заметил, что вы выполняете вызов синхронизации на сервере, это то, что застряло в вашем основном потоке, вы можете выполнить это в фоновом потоке, вызвав saveInBackground и не сохранить –
Я выполнил файл save(), но это не так работа тоже. Я делаю вызов синхронизации намеренно, поскольку я использую unind segue, поэтому, если я использую saveInBackground, тогда поток вернется до сохранения завершений, которые я не хочу. – ashishn
Можете ли вы вставить код вашего определения imageOutlet? –