Ich kann nicht scheinen, Daten in Realm in Swift zu speichern!Daten können nicht in Realm gespeichert werden
In einer meiner Klassen Ich habe folgendes:
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
}
}
}
Und es scheint nicht, die Daten zu speichern! Ich habe Code ähnlich zu diesem während meiner Anwendung und seine speichernden Daten, aber das ist nicht!
Auch habe ich Probleme beim Versuch, meine Daten zu persistieren, nachdem ich die Anwendung gestartet habe, werden die Daten mit Realm gespeichert (was ich mit dem Realm-Browser überprüfen kann). Sobald ich die Anwendung neu starte, existieren die Daten nicht mehr in Realm! Hat jemand irgendwelche Vorschläge, warum die Daten nicht beibehalten werden?
EDIT 1
Hier ist mein Reich Klasse
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"
}
}
EDIT 2
Die NSUUID nicht die einzigen Daten, die ich nicht speichern kann, wird die folgende ist ein weiteres Beispiel von Daten, die ich mit Realm nicht speichern kann:
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)
}
}
}
bitte Ihre 'RealmWallet' Code-Klasse hinzufügen, vielleicht hat die Klasse die' dynamic' für seine Variablen – xmhafiz
die Klasse hinzugefügt, und es tut! Sollte es dann keine Dynamik haben? – tobyapp
Ändern Sie die Standardkonfiguration ('Realm.Configuration.defaultConfiguration') überhaupt? Haben Sie auch Code in Ihrer App, um Dateien auf der Festplatte zu entfernen, z. am Anfang? – AustinZ