Search code examples
iosswiftrealm

Swap elements inside Realm Object


Here's my code in which I want to swap child objects (origin and destination) in Realm:

class TrainSearchOptions: Object {
    dynamic var origin: Station?
    dynamic var destination: Station?
    dynamic var date: Date?

    func swapPlaces() {
        guard origin != nil && destination != nil else {
            fatalError()
        }

        swap(&origin!, &destination!)
    }
}

But this crashes. Any ideas?


Solution

  • You need to do this inside Realm write transaction.

    do {
           try realm.write {
               swap(&origin!, &destination!)
           }
       } catch let error as NSError {
           print(error)
       }
    }