【发布时间】:2016-04-25 13:02:37
【问题描述】:
我刚开始使用 Realm 也使用 ObjectMapper 来保存数据。我遇到的问题是:
ObjectInList 最初是 id = 0 和 symbol = "CA",映射后它有不同的数据,如 id = 0,symbol = "First Name, Last name"。
在let database开始之前我已经将数据存储在profileDictionary变量中,在database.add(profileDictionary)之后对象列表的内容更改为初始数据喜欢
id = 0 和
symbol = "CA"
可怕的是变量testInt 没有改变它的值并且等于10。
感谢您的建议!
class ObjectInList: Object, Mappable{
dynamic var id : Int = 0
dynamic var symbol : String = "CA"
convenience required init?(_ map: Map) {
self.init()
}
func mapping(map: Map) {
id <- map["id"]
symbol <- map["symbol"]
}
}
class ProfileDictionaries: Object, Mappable{
dynamic var testInt : Int = 20
var states = List<ObjectInList>()
convenience required init?(_ map: Map) {
self.init()
}
func mapping(map: Map) {
// ObjectMapper does not support List<Object>() collections.
testInt = 10
var array: [ObjectInList] = []
array <- map["states"]
states.appendContentsOf(array)
}
}
SwiftEventBus.onMainThread(self, name: Constants.ServerResponse.PROFILE_DICTIONARIES_SUCCESS){
result in
let profileDictionary = result.object as? ProfileDictionaries ?? ProfileDictionaries()
self.removeDatabase()
do{
let database = try Realm()
try! database.write {
database.add(profileDictionary)
let localProfileDictionaries = database.objects(ProfileDictionaries)
}
catch let error as NSError{
print(error)
self.removeDatabase()
}
}
【问题讨论】: