テーブルビューでセルを選択し、値をコントローラーに渡して、次のコードを使用してParse(Herokuで実行中)の行を更新できるようにします。Swiftを使用してParseで画像ファイルの列を更新できません
問題私は直面しています - 「タイトル」列は更新されますが、画像ファイルの列は選択された新しい画像で更新されません。新しいイメージが実際にコードに渡されていることがわかります。
同期呼び出しを使用しています。これは、レコードが保存されない限り、ユーザーが先に移動しないようにするためです。
何が間違っている可能性がありますか?新しいオブジェクトを保存する同じコードが正常に動作します。
おかげ アシシュ
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()を実行しましたが、仕事も。私は、私がsaveInBackgroundを使用する場合、スレッドが完了しないうちに保存する前に戻ってくるので、私が欲しがらないセグを使用しているので、意図的に同期コールを行っています。 – ashishn
imageOutlet定義のコードを貼り付けてください。 –