ios - 领域关系如何实现
问题描述
我正在开发 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 的引用。但是当我尝试获得所有客户时,该客户只有客户详细信息而不是产品详细信息。而那必须在那里。
解决方案
只需将dynamic
关键字放在您的属性之前
dynamic var Product : ProductModel? = nil
推荐阅读
- javascript - 如何使用 processing.js 使贝塞尔点的动画更平滑/更慢
- reactjs - 将状态传递给模态(子组件)不会改变子组件内部的状态
- python - 编码一串数字(递归?)
- node.js - 同步 Promise 以初始化 MongoDB 数据库
- angular - Angular (v4) DatePipe 与 UTC 日期时间作为本地时间
- go - 使用结构更新值
- sql - 当我的价格在 Apex Oracle SQL 的不同表中时,如何找到分组范围的平均价格?
- r - R:将数据框元素与向量元素匹配
- python - 如何通过迭代列表来创建字典,具有相同的键多个值?
- c# - 创建一个动态 EF 过滤器,为任何字符串实体属性构建一个 LINQ Where equals/contains 语句