2016-08-04 75 views
0

我嘗試使用對象映射器從領域結果創建JSON格式。所以,我創建了兩個通用方法來實現這一點。最前一頁方法創建數組形式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 
} 

話,我想用Object Mapper改變這個數組JSON對象,但是當我嘗試這樣做,我收到一個錯誤,不知道如何我可以解決它嗎?我的第二個方法看起來像這樣:

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

錯誤信息:無法調用 「toJSONString」 類型的參數列表 「([T],prettyPrint:BOOL)」。

您有任何疑問如何在Realm中創建來自Result的JSON?

回答

0

首先,makeAnArrayFromResults<T>真的只是map

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

至於對象映射器整合得好,它看起來像你沒有定義滿足[Person]第一個參數類型約束的toJSONString功能。

在Object Mapper的問題跟蹤器中有關與Realm的互操作性的討論頗多,您可能會發現它很有用:https://github.com/Hearst-DD/ObjectMapper/issues/475

相關問題