无法将数据保存到领域
问题描述:
我似乎无法将数据保存到Swift中的领域!无法将数据保存到领域
在我的班级之一,我有以下几点:
func getDeviceIdAndPersist(){
print("getDeviceIdAndPersist")
let realm = try! Realm()
let realmWallet = RealmWallet()
let realmResults = realm.objects(RealmWallet.self)
for results in realmResults {
guard results.deviceId != nil else {
realmWallet.deviceId = NSUUID().UUIDString
try! realm.write() {
realm.add(realmWallet, update: true)
}
return
}
}
}
,它似乎不保存数据!在我的应用程序和其保存数据中,我有类似于此的代码,但这不是!
另外我在尝试保留数据时遇到问题,在启动应用程序后,数据使用领域(我可以使用领域浏览器进行验证)存储。但是,一旦我重新启动应用程序,数据不再存在于领域!有没有人有任何建议,为什么数据不会被持续?
EDIT 1
这是我的境界类
class RealmWallet: Object {
dynamic var publicKey = NSData()
dynamic var preferredAddress = ""
dynamic var id = 0
let walletAddresses = List<Addresses>()
dynamic var fee: NSNumber = 0.0
dynamic var deviceId: String? = nil
dynamic var tempPreTax: String? = nil
dynamic var portalToken: String? = nil
let walletHasBackup = RealmOptional<Bool>()
let alreadyAskedForBluetooth = RealmOptional<Bool>()
let insecureMailSent = RealmOptional<Bool>()
let cameraAccessGranted = RealmOptional<Bool>()
let idNowSuccess = RealmOptional<Bool>()
dynamic var marketInfos = NSData()
override class func primaryKey() -> String? {
return "id"
}
}
编辑2
的NSUUID不是其本人不能保存的唯一数据,以下是另一个例子的数据,我似乎无法使用Realm保存:
onboardingModal!.bluetoothPressed = {() -> Void in
print("after onboardingModal")
self.cbManager = CBCentralManager(delegate: self, queue: nil)
print("REALM")
let realm = try! Realm()
do {
try! realm.write {
print("IN WRITE")
self.realmWallet.alreadyAskedForBluetooth.value = true
realm.add(self.realmWallet, update: true)
}
}
}
答
如果您的结果数为0,则不会进入for循环。 改为尝试此操作。
func getDeviceIdAndPersist() {
let realm = try! Realm()
let realmResults = realm.objects(RealmWallet.self)
guard results.count > 0 else {
let realmWallet = RealmWallet()
realmWallet.deviceId = NSUUID().UUIDString
try! realm.write() {
realm.add(realmWallet, update: true)
}
return
}
}
+0
仍然因为某种原因不保存! – tobyapp
请添加您的'RealmWallet'代码类,或许类有'dynamic'其变量 – xmhafiz
添加了类,它呢!它应该没有动态吗? – tobyapp
您是否修改默认配置('Realm.Configuration.defaultConfiguration')?此外,您是否有应用中的任何代码来删除磁盘上的文件,例如在启动? – AustinZ