2016-08-04 11 views
0

Ich versuche, JSON-Format aus Realm-Ergebnisse mit Object Mapper zu erstellen. Also habe ich zwei generische Methoden dafür erstellt. Fisrt Methode erstellen Array-Form Results und sieht wie folgt aus:So erstellen Sie das JSON-Format aus Realm "Results" mit Object Mapper

var allRealmData: Results<Project>? // in this variable I save all Project Objects first 

func makeAnArrayFromResults<T>(object: T.Type) -> [T]?{ 
    var array = [T]() 
    guard let mainArray = allRealmData else { return nil } 
    for i in mainArray { 
     if let object = i as? T { 
      array.append(object) 
     } 
    } 
    return array 
} 

dann würde Ich mag Object Mapper verwenden, um dieses Array zu JSON-Objekt zu ändern, aber wenn ich es versuchen tun, erhalte ich einen Fehler und nicht wissen, wie kann ich es lösen? Meine zweite Methode sieht wie folgt aus:

func createJSON<T: Object>(object: T.Type){ 
    let array = makeAnArrayFromResults(object) 
    let json = Mapper().toJSONString(array!, prettyPrint: true) //here error 
} 

Fehler Info: Kann nicht "toJSONString" mit einer Argumentliste vom Typ "(: Bool [T], Schöndruck)" aufrufen.

Haben Sie irgendwelche Vorschläge, wie kann ich JSON von Result in Realm erstellen?

Antwort

0

Erstens ist makeAnArrayFromResults<T> wirklich nur map:

let someRealmResults: Results<Project>? 
... 
let array = someRealmResults?.map { $0 } // => [Project]? 

Was die Object Mapper Integration geht, sieht es aus wie Sie, dass befriedigt definiert keine toJSONString Funktion haben die ersten Argument Typ Zwänge [Person].

Es gibt ziemlich viel Diskussion in Object Mapper issue tracker über die Interoperabilität mit Realm, die Sie nützlich finden können: https://github.com/Hearst-DD/ObjectMapper/issues/475