2016-08-04 4 views
0

Object Mapperを使用してRealm結果からJSON形式を作成しようとしています。だから、私はそれを行うための2つの一般的な方法を作成しました。・ファースト方法は、アレイ状Resultsを作成し、そのようになっていますObject Mapperを使用してRealm "Results"からJSON形式を作成する方法

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 
} 

、私はJSONオブジェクトにこの配列を変更するためにObject Mapperを使用したいが、私はそれを行うしようとすると、私はエラーを受信して​​、方法がわかりません私はそれを解決できますか?

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

エラー情報:私の第二の方法は、そのように見えるタイプの引数リスト "(:ブール[T]、prettyPrint)" と "toJSONString" を起動することはできません。

RealmのResultからJSONを作成するにはどうすればよいですか?

答えて

0

はまず、makeAnArrayFromResults<T>は本当にただmapです:あなたはtoJSONString機能はそれが[Person]の最初の引数の型制約を満たして定義されていないよう

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

限りオブジェクトマッパーとの統合が進むにつれて、それが見えます。

議論のかなりのビットは、あなたが役に立つかもしれないレルムとの相互運用性に関するオブジェクトマッパーの問題追跡にあります:https://github.com/Hearst-DD/ObjectMapper/issues/475

関連する問題