如何使用 swift 中的特定字段 dbAccess 更新特定记录

How to update specific record with specific fields dbAccess in swift

我在更新现有记录 (DBAccess ORM) 时遇到问题。 我想通过特定字段的“ID”更新特定记录。

请查看以下 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();
}

当我尝试以这种方式更新记录时。然后它在“post”table.

中生成新记录

请提出解决此问题的完美解决方案。

OP 示例将始终创建一个新对象,因为他们正在使用以下方法创建一个全新的对象:

let objPost = Post();

要更新记录,您需要获取原始对象,为此您可以查询它,或使用快捷方式之一:

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

或更短的版本是:

let objPost = Post.objectWithPrimaryKeyValue(Post_id)

本质上在后台执行相同的查询。

这两种方法都会 return 一个现有对象,无论何时将其提交到数据库中,都会替换现有对象。

谢谢 阿德里安