2
Im從api獲取JSON文件與不同api鏈接的版本,以便我知道哪些信息要再次下載,如果它過時了。Realm Swift:無法從領域獲取對象
我有一個版本的類,看起來像這樣:
class Version : Object {
dynamic var myKey = NSUUID().uuidString
dynamic var banks_v = 0
dynamic var atms_v = 0
override static func primaryKey() -> String? {
return "myKey"
}
我的想法是從領域採取的是舊版本,並從API下載新版本,如果版本不匹配我應該下載JSON我需要的文件並更新我的領域。我這樣做是這樣的:
let newVersion = Version()
for item in json {
newVersion.banks_v = item.1["banks_v"].intValue
newVersion.atms_v = item.1["atms_v"].intValue
}
// ---- NEED HELP HERE START
let oldVersion = self.realm.object(ofType: Version.self, forPrimaryKey: newVersion.myKey)
// NEED HELP HERE END ----
var rewriteVersion = false
if newVersion.banks_v != oldVersion?.banks_v {
print(newVersion.banks_v) // prints 3 (correct)
print(oldVersion?.banks_v) // prints nil (???)
self.getBanks()
rewriteVersion = true
}
if newVersion.atms_v != oldVersion?.atms_v {
self.getAtms()
rewriteVersion = true
}
if rewriteVersion {
try! self.realm.write {
self.realm.add(newVersion, update: true)
}
}
問題是,我不知道如何從領域正確得到對象。我認爲這部分是錯的:
forPrimaryKey: newVersion.myKey
我也試過把「myKey」放在那裏,但它仍然是零。對此有何想法?
提前致謝!