Zariff Zaul
Zariff Zaul

Reputation: 41

How to link two Realm objects

I'm new to iOS development and currently using Realm as database. My first tableview display Restaurant object and second table display customer objects. How can i link this two objects?. Means when i click each restaurant it will display different customer.

class Restaurant: Object {
    dynamic var restname: String = ""
    dynamic var date: String = ""
}

class Customer: Object {
    dynamic var id = 0
    dynamic var name: String = ""
    dynamic var price: Float = 0.0
    dynamic var drinks: Float = 0.0

    override static func primaryKey() -> String? {
        return "id"
    }
}

Upvotes: 4

Views: 2824

Answers (2)

Crazyrems
Crazyrems

Reputation: 2601

You make references to your models like so

class Customer: Object {
    dynamic var restaurant: Restaurant?
}

You also have the possibility to get reverse relationship with LinkingObjects(fromType:, property:)

You can write in your other model

class Restaurant: Object {
    let customers = LinkingObjects(fromType: Customer.self, property: "restaurant") 
}

That way you don't duplicate relationships.

Upvotes: 1

miff
miff

Reputation: 342

If I understand, in Restaurant class put this:

dynamic var _customer = Optional(Customer())

or in Customer class put this line:

dynamic var _restaurant = Optional(Restaurant())

NOTE: Name of variable with lower dash, may be any name, my habit is to put lower dash

Upvotes: 0

Related Questions