2016-03-23 1 views
2

私はiOS開発を初めて使い、現在Realmをデータベースとして使用しています。私の最初のテーブルビュー表示のレストランオブジェクトと2番目のテーブルは顧客オブジェクトを表示します。この2つのオブジェクトをどのようにリンクできますか。それぞれのレストランをクリックすると、別の顧客が表示されます。2つのRealmオブジェクトをリンクする方法

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" 
    } 
} 

答えて

0

私は理解していれば、レストランのクラスでは、この置く:

dynamic var _customer = Optional(Customer()) 

またはCustomerクラスでは、この行に置く:

dynamic var _restaurant = Optional(Restaurant()) 

注:下のダッシュを持つ変数の名前であってもよいし任意の名前、私の習慣は、ダッシュを置くことです

0

あなたのようにあなたのモデルへの参照を

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

はまた、あなたは他のモデル

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

あなたが関係を重複しないような方法で書くことができますLinkingObjects(fromType:, property:)

と逆の関係を取得する可能性があります。

+0

オブジェクト間に逆の関係を定義するコードを追加しようとしました。しかし、タイプ '(fromType:Users.Type、property:String)の引数リストで'タイプ 'LinkingObjects 'のイニシャライザを呼び出せませんというエラーが表示されます。 – Jobs

+0

@Jobs現在のAPIの推奨事項に合わせて編集しました。これは確かに動作します:)私はそれをテストしました。 – Crazyrems

関連する問題