저는 Swift에 익숙하지 않고 iOS (iOS> = 8) 프로젝트에서 JSON 문자열로 객체 구조를 직렬화해야합니다. 그래서 ObjectMapper 라이브러리 (Cocoapod와 통합)를 사용하기로 결정했습니다.Swift 및 ObjectMapper에서 상속을 사용하는 방법은 무엇입니까?
하지만 내 문제는 구조는 다음과 같습니다.
ObjectA는 자식 변수의 목록을 인스턴스 변수에 저장된 배열로 가질 수 있습니다. 인스턴스 배열에 저장할 수있는 객체는 ObjectB 및 ObjectC와 같이 여러 유형이 될 수 있습니다. 따라서 GSON을 사용하는 Java에서 InterfaceD를 만들고 클래스를 구현하고 ObjectA 저장소 InterfaceD 유형의 배열을 만들었지 만 Swift 객체 모델에서 빈을 결과로 가져 오는 방법을 파악할 수 없습니다 {}
JSON 객체.
결과 JSON은 다음과 같아야합니다.
{"children":[
{"type":"ObjectB", "value1":"foo"},
{"type":"ObjectC", "value1":"bar", "value2":"baz"}
]}
나는이 두 항목이 서로 다른 구조를 가지고 있어야 objectA 및 ObjectC에서 직렬화 할 것을
{"children":[
{},
{}
]}
공지 얻을.
여러 번 시도했지만 막 다른 골목에 갇혀 있습니다. generics를 사용하여 Mappable 프로토콜을 배열 형식으로 사용하려고 시도했지만 고전적인 클래스 상속을 시도했지만 어느 것이 든 실패했습니다.
내가 어떻게이 문제를 해결할 수 있는지 생각해보십시오.
각 개체에 직렬화 함수를 추가하고 문자열을 재귀 적으로 검색하여 연결시킬 수 있다는 것을 알고 있습니다. 하지만 Alamofire가 이미 프로젝트에서 사용되었으므로 이미 성공적으로 사용하고 있으므로 JSON 시리얼 라이저를 직접 구현하는 것을 피하고 싶습니다. 또한 새 serializer를 구현하면 오류가 발생하기 쉽고 IMO 문제를 해결할 수있는 깨끗한 방법이 아닙니다.
고마워요.