我正在为我的项目使用Objectmapper和Realm。
我有一个像
这样的对象class File
{
dynamic var name
dynamic var folder
dynamic var path // This is not coming from JSON // this should be combination of both name+folder
}
我想过编写一个计算属性来实现这个目的,但Realm不支持计算属性作为主键。
但我应该用它作为主键。从服务器响应来看,我有什么方法可以操作来添加该值。
注意:我使用的是AlamofireObjectMapper。
我使用以下方法解析服务器响应并为我提供模型对象。
Alamofire.request(router).responseObject{ (response: DataResponse<T>) in
{
let myModel = response.result.value // Parsed object
===== What can i do here to achieve my requirement=====
}
答案 0 :(得分:1)
你真的应该考虑使用某种id
作为主键,而不是从其他属性计算它(如果它们是空的或计算出错会发生什么?你没有有效主键)。
但是,如果你真的需要,你可以尝试
let realm = try Realm()
try realm.write {
items.forEach({ (item) in
item.path = item.name + item.folder
}
realm.add(items, update: true)
}
并且不要忘记将path
定义为File
类中的主键:
class File
{
dynamic var name
dynamic var folder
dynamic var path // This is not coming from JSON // this should be combination of both name+folder
override static func primaryKey() -> String? {
return "path"
}
}