Swiftでレルムにデータを保存できないようです!データをrealmに保存できません
私は、次のしている私のクラスの一つで:
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
は私のレルムクラスはNSUUIDは、私が保存できないデータだけではありませんEDIT 2
、以下は別の例である
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"
}
}
ですレルムを使用して保存できないように見えるデータ:
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)
}
}
}
おそらくクラスは、クラスを追加しました – xmhafiz
その変数のための 'dynamic'を持っており、それがない、あなたの' RealmWallet'コードクラスを追加してください!動的でなければならないのでしょうか? – tobyapp
デフォルト設定( 'Realm.Configuration.defaultConfiguration')をまったく変更していませんか?また、アプリケーションにディスク上のファイルを削除するためのコードがありますか?スタートアップ時? – AustinZ