Realm Swift - 复制现有的嵌套对象

时间:2017-01-21 16:20:17

标签: ios swift realm

我是Realm的新手,我试图制作一个简单的应用程序。我目前正在使用这个模型:

class Item: Object{
    dynamic var title = ""
    dynamic var created = Date(timeIntervalSince1970: 1)
    dynamic var price = 0.0
    dynamic var image = ""
    dynamic var store: Store?
}

class Store: Object{
    dynamic var name = ""
}

当我保存我的新项目时,我这样做:

@IBAction func saveItem(){
        /*some validations*/

        let item = Item()
        item.title = name
        item.price = 20.00
        item.created = Date()

        if let store = chosenStore{
            item.store = store
        }

        do{
            try realm.write {
                realm.add(item)
            }
        }catch{
            print(error.localizedDescription)
        }
    }

问题在于我已经添加了5个商店,但是当我选择存储选项时,它会创建一个新商店。如何在不创建新商店的情况下保留对特定商店的引用?

1 个答案:

答案 0 :(得分:0)

为您的商店提供独特的属性。例如UUID。

dynamic var uuid = UUID().uuidString

覆盖Store模型的primaryKey函数,并返回先前创建的唯一属性。

override class func primaryKey() -> String? {
     return "uuid"
}

应该这样做。

相关问题