领域关系如何实施

时间:2018-12-10 12:22:01

标签: ios swift realm

我正在使用iOS,正在保存产品。并且该产品的模型中还有更多内容

让我们假设以下模型

@objcMembers public class ProductModel : Object, Codable {

  dynamic var Id : Int = 0
  dynamic var Name : String = 0
  dynamic var Price : Double = 0.0

}

,另一个包含ProductModel的模型(CustomerModel)如下

 @objcMembers public class CustomerModel : Object, Codable {

  dynamic var Id : Int = 0
  dynamic var Name : String = 0
  var Product : ProductModel? = nil 

}

现在,当我用内部产品保存客户时,可以看到在Realm中成功保存了产品。但是,当且仅当该对象不在Realm中时,

假设这个

let customer1 = CustomerModel()
customer1.Id = ...
customer1.Name =  .....
customer1.Product = product1 

现在,此客户数据已保存。但是,如果我尝试保存以下数据,则会出现异常

let customer2 = CustomerModel()
    customer2.Id = ...
    customer2.Name =  .....
    customer2.Product = product1

请注意,customer2还希望保存已经保存在Realm中的产品信息,即“ product1”。

那么如何处理这种情况。

我正在尝试使用以下针对领域对象的通用功能保存数据

func save <T: Object> (_ obj : T){
do {
    try realmObj.write{
        realm.add(obj)
    }
  }catch{}

}

问题2:

我也想获得所有客户,我知道该怎么做,但是问题是它从来没有在客户内部检索产品。我可以在Realm DB Browser中看到与产品一起保存的客户,该客户表也包含Product的引用。但是,当我尝试吸引所有客户时,该客户只有客户详细信息,而没有产品详细信息。而那一定在那里。

1 个答案:

答案 0 :(得分:4)

只需在您的媒体资源之前放置dynamic关键字

dynamic var Product : ProductModel? = nil