我是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个商店,但是当我选择存储选项时,它会创建一个新商店。如何在不创建新商店的情况下保留对特定商店的引用?
答案 0 :(得分:0)
为您的商店提供独特的属性。例如UUID。
dynamic var uuid = UUID().uuidString
覆盖Store模型的primaryKey
函数,并返回先前创建的唯一属性。
override class func primaryKey() -> String? {
return "uuid"
}
应该这样做。