Realm:当尝试添加具有相同主键值的对象并显示错误消息时,如何捕获异常



目前,我正在使用这个带有Predicate的获取来了解是否已经有相同的主键值:

类别类别:

class Category: Object
{
    dynamic var name = ""
    override static func primaryKey() -> String? {
        return "name"
    }    
}

正在验证具有主键(名称)值的类别对象是否已存在。

let predicate = NSPredicate(format: "name == %@", newCategoryName)
let realm = try Realm()
let categories = realm.objects(Category).filter(predicate).sorted("name")
if categories.count > 0
{
    //Duplicate Object with newCategoryName found
}

有什么更简单的方法吗?

以下是如何使用它来检查是否已经有一个具有该主键的对象:

let category = Realm().objectForPrimaryKey(Category.self, key: newCategoryName)
if (category != nil) {
    //Duplicate Object with newCategoryName found
}

您可以将Realm.add(_:update:)Realm.create(_:update:)update == true一起使用来更新具有相同主键值的现有对象。或者,您可以使用Realm.objectForPrimaryKey(_:key:)从主键中获取现有对象。

相关内容

最新更新