Realm Swift:无法从领域获取对象
问题描述:
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”放在那里,但它仍然是零。对此有何想法?
提前致谢!
答
我修好了!
在我的模型类我取代我的ID是这样的:
dynamic var id = 0
这里:
let oldVersion = self.realm.object(ofType: Version.self, forPrimaryKey: 0)