もともとNSCodingでチマチマとencode/decodeを書くのに本当に辟易していた上に、さらにJSON書き出しも実装しなきゃ、みたいな状況が重なって鬱になってたところに、Swift4のCodableを使うとJSON書き出しも永続化もイッパツ、みたいな情報が入ってきたんですよ。そんな自分のニーズにドンピシャな機能があればそりゃあまあ飛びつくじゃないですか。 ということで、早速使ってみたらまあコーディングの楽なこと。やっぱり最新機能はええべな・・・と思ってたわけですが、そこにはとんでもない落とし穴があったわけです。 これは今作ってるシーケンサーアプリのデータ構造の一部なんですが、ポイントは、シーケンスの中には音符イベント(SequenceEventNote)とピッチベンドイベントみたいな違った種類のイベントがあって、それをSequenceEventというスーパークラスで抽象化していると