2016-08-04 2 views
0

개체 매퍼를 사용하여 영역 결과에서 JSON 형식을 만들려고합니다. 그래서, 나는 그것을하기위한 두 가지 일반적인 방법을 만들었습니다. Fisrt 방법 배열 형식 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 
} 

오류 정보 : 유형의 인수 목록과 함께 "toJSONString" "(: BOOL [T], prettyPrint)"을 호출 할 수 없습니다.

렐름에서 Result에서 JSON을 만들려면 어떻게해야합니까?

답변

0

첫째, makeAnArrayFromResults<T> 정말 그냥 map입니다 :

let someRealmResults: Results<Project>? 
... 
let array = someRealmResults?.map { $0 } // => [Project]? 
당신이 [Person]의 만족 첫 번째 인수 형 제약 것을 정의 toJSONString 기능이없는 것

는 지금까지 개체 매퍼 통합이가는대로, 그것은 보인다.

당신이 유용하게 사용할 수있는 영역과의 상호 운용성에 대한 객체 매퍼의 이슈 트래커에서 논의 꽤있다 : https://github.com/Hearst-DD/ObjectMapper/issues/475