2016-07-29 4 views
0

데이터를 영역에 저장할 수 없습니다.데이터를 영역에 저장할 수 없습니다.

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 
    } 
} 
} 

을 그리고 데이터를 저장하지 않는 것 : 내 클래스 중 하나에서

나는 다음과 같은있다! 내 응용 프로그램과 저장 데이터를 통해 이와 비슷한 코드가 있지만이 코드는 아닙니다!

또한 데이터를 유지하려고 할 때 문제가 있습니다. 응용 프로그램을 실행 한 후 데이터가 영역을 사용하여 저장됩니다 (영역 브라우저를 사용하여 확인할 수 있음). 그러나 일단 응용 프로그램을 다시 실행하면 데이터가 더 이상 영역에 존재하지 않습니다! 누구든지 데이터가 지속되지 않는 이유에 대한 제안이 있습니까? 여기에 편집 한

는을 편집 NSUUID 내가 저장할 수있는 유일한 데이터가 아닌 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) 
    } 
    } 
} 
+0

이'RealmWallet' 코드 클래스를 추가하십시오, 아마도 클래스는 변수의'dynamic' – xmhafiz

+0

클래스를 추가 있고, 그렇습니다! 그럼 역동적이지 않아야합니까? – tobyapp

+0

기본 구성 ('Realm.Configuration.defaultConfiguration')을 전혀 수정하지 않습니까? 또한 디스크에있는 파일을 제거하기 위해 앱에 코드가 있습니까? 시작할 때? – AustinZ

답변

0

결과 개수가 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

관련 문제