2016-05-13 11 views
0

私は、既存レコードの更新(DBAccess ORM)に問題があります。 特定のフィールドを持つ "ID"で特定のレコードを更新したいとします。特定のレコードを特定のフィールドに更新する方法dbAccess swift

以下のスウィフトコードを確認してください。

func updatePostDataById(Post_id: NSNumber, updatedName:String, updatedCity:String){ 

    let objPost = Post(); 

    objPost.Id = Post_id; 
    objPost.name = updatedName; 
    objPost.city = updatedCity; 

    objPost.commit(); 
} 

このようにレコードを更新しようとします。 "投稿"テーブルに新しいレコードとして生成します。

この問題を解決するには、完璧な解決策を提案してください。彼らが使用して新しいオブジェクトを作成しているので、

答えて

0

のOPSの例では、常に新しいオブジェクトを作成します。

let objPost = Post(); 

をレコードを更新するには、あなたはあなたにこれを行うには、元のオブジェクトのホールドを取得する必要がありますいずれかのクエリそれをすることができ、またはショートカットのいずれかを使用します。

let objPost = Post.query().whereWithFormat("Id = %@", withParameters: [Post_id]).limit(1).fetch().firstObject; 

またはわずかに短いバージョンは次のようになります。

let objPost = Post.objectWithPrimaryKeyValue(Post_id) 

これは本質的に同じクエリをフードの中で実行します。

これらのメソッドはどちらも、データベースにコミットされるたびに既存のオブジェクトを置き換える既存のオブジェクトを返します。

ありがとうございました エイドリアン

関連する問題