2017-03-15 18 views
0

ベースオブジェクトから継承するオブジェクトのマップ配列:スウィフトObjectMapper:私はこのような基本親オブジェクトを持つ

class A: Mappable { 
    var x: String! 
    ... 
} 

そして2人のそれの子供:

class Child1: A { 
    var y: Int! 
    ... 
} 

class Child2: A { 
    var z: String? 
} 

このすべてが良いとダンディですしかし、Aから継承するオブジェクトの配列を表すオブジェクトがあるとどうなりますか:

class Wrapper: Mappable { 
    var objcs: [A]? // A will always be either Child1 or Child2, never A directly 
} 

どうすればこのような状況を管理できますか?私はこの問題を解決するために管理

+0

実際の問題は何ですか? – JeremyP

+0

問題は、ライブラリがWrapper内のオブジェクトをChild1またはChildB型として認識せず、それらをすべてAとしてキャストすることです。 –

+0

なぜそれが問題ですか?これは標準のOOプログラミングです。継承と上書きを参照してください – JeremyP

答えて

0

(少し詳しく、私は冗長さを避けるために注釈とNSObjectの継承を追加していない、同様のObj-cからラッパーを使用できるようにする必要があります)ので、私はこれを残しています

[Any]のリストを受け取り、内部構造に応じて独立してChild1またはChild2に変換するカスタムTransformType(ObjectMapperライブラリのプロトコル)を実装する必要がありました。任意