2016-05-13 67 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

相关问题