2017-01-21 5 views
1

Я новичок в Realm, и я пытаюсь сделать простое приложение. Я сейчас работаю с этой моделью:Realm Swift - Дублируйте существующие вложенные объекты

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

Имейте уникальное свойство для своего магазина. Например, UUID.

dynamic var uuid = UUID().uuidString 

Override primaryKey функции для вашей модели магазина, и возвращает ранее созданное уникальное свойство.

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

Он должен сделать трюк.

+0

Thanks Yoam! Я добавил первичный ключ и затем запрошу это хранилище, прежде чем сохранять его, теперь нет нового дубликата Store. –

Смежные вопросы