2017-06-30 2 views
1

Ich konnte vorher speichern, aber ich wollte asynchron speichern.RealmSwift: libC++ abi.dylib: Beenden mit nicht abgefangener Ausnahme vom Typ NSException

Benutzer ist eine Klasse/ein Objekt. Jedes Mal, wenn ich versuche, es in einem ".async" zu laufen fädelt mit Fehler fehlschlägt:

libc++abi.dylib: terminating with uncaught exception of type NSException

on line:

let userObjects = self.realm.objects(User.self)

Code:

let user = User(dictionary: element as? [String : Any]) 

       print("entering dispatchqueue realm") 
       DispatchQueue(label: "background").async { 
        autoreleasepool { 
         let userObjects = self.realm.objects(User.self) 
         do { 
          try! self.realm.write { 
           self.realm.add(user!, update: true) 
          } 
         } 
         catch { 
          print("error saving to realm") 
          // Handle the error case 
         } 

        } 
       } 

Ist es threadsafe?

Edit:

Ich konnte es erhalten, indem let realm = try! Realm() Block innerhalb der Asynchron bewegen zu arbeiten

+0

haben Sie eine Lösung dafür finden? –

Antwort

0

bewegen let realm = try! Realm() innerhalb der Asynchron() Block.

let user = Benutzer (Wörterbuch: Element wie? [String: Alles])

  print("entering dispatchqueue realm") 
      DispatchQueue(label: "background").async { 
       **let realm = try! Realm()** 
       autoreleasepool { 
        let userObjects = self.realm.objects(User.self) 
        do { 
         try! self.realm.write { 
          self.realm.add(user!, update: true) 
         } 
        } 
        catch { 
         print("error saving to realm") 
         // Handle the error case 
        } 

       } 
      } 
Verwandte Themen