如何使用 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 一个现有对象,无论何时将其提交到数据库中,都会替换现有对象。
谢谢
阿德里安
我在更新现有记录 (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 一个现有对象,无论何时将其提交到数据库中,都会替换现有对象。
谢谢 阿德里安