Swift4のCodableが便利そうということで飛びついた結果、継承+アレイの組み合わせが混じっているととんでもなく面倒なことが起こるということが発覚したわけですが。 http://qiita.com/Yokemura/items/3a704db0bcadec381549 そもそも、継承が存在する時点で親子ともに手作業でencode/decodeを書かなきゃいけないようで https://stackoverflow.com/questions/44553934/using-decodable-in-swift-4-with-inheritance 正直継承関係のあるオブジェクトをCodableの世界に持ち込むのはやめたほうがいいなと思いました。ひとつやふたつだったらいいですけど、それをアレイにぶち込んでなんたら・・・とかちょっと無理ですね。実際ちょっと書こうとしましたが複雑すぎてあきらめ