2016-05-13 69 views
0

我遇到了更新現有記錄(DBAccess ORM)的問題。 我想用特定字段更新「ID」的具體記錄。如何使用特定字段更新特定記錄dbAccess swift

請查看下面的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

的有機磷農藥的例子永遠是創建一個新的對象,因爲他們正在創建使用一個全新的對象:

let objPost = Post(); 

更新記錄,你需要得到原始對象的一抱,這個你可以,要麼查詢,或使用快捷方式之一:

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

或稍短的版本是:

let objPost = Post.objectWithPrimaryKeyValue(Post_id) 

本質上是在引擎蓋下進行相同的查詢。

這兩種方法都會返回一個現有的對象,只要它被提交到數據庫中,就會替換現有的對象。

謝謝 Adrian

相關問題