我正嘗試將json
對象存儲到realm
對象使用Objectmapper
我收到來自Alamofire
的響應後。下面是我寫的代碼:複合關鍵問題Realm Swift
func getTodayData() {
Alamofire.request("https://myapipoint.json").responseJSON{ (response) in
guard response.result.isSuccess, let value = response.result.value else {
return
}
let json = JSON(value)
guard let realm = try? Realm() else {
return
}
realm.beginWrite()
for (_, value): (String, JSON) in json {
let tpTodayOb = Mapper<TPToday>().map(JSONObject: value.dictionaryObject)
realm.add(tpTodayOb!, update: true)
}
do {
try realm.commitWrite()
}
catch {
print("Error")
}
}
}
我能夠從我的服務器映射json
數據。但是,我的複合鍵存在問題。三個變量不是唯一的,但它們的組合是唯一的,所以我必須使用compoundKey
作爲我的主鍵。我從compoundKey
建設primaryKey
如下:
public dynamic var compoundKey: String = "0-"
public override static func primaryKey() -> String? {
// compoundKey = self.compoundKeyValue()
return "compoundKey"
}
private func compoundKeyValue() -> String {
return "\(yearNp)-\(mahina)-\(gate)"
}
這是我已經初始化我的三個變量。
func setCompoundID(yearNp: Int, mahina: String, gate: Int) {
self.yearNp = yearNp
self.mahina = mahina
self.gate = gate
compoundKey = compoundKeyValue()
}
和compoundKey
按Github issues的定義在這裏。我有31個字典存儲在我的數據庫中,但我只能存儲最後一個字典。我確信這是一個複合關鍵問題,因爲此代碼庫能夠將數據存儲在具有唯一字段作爲主鍵的另一個表中,而在此數據庫表中則不是這種情況。我是否宣佈我的compoundKey
錯誤?