私は、コーディング可能なプロトコル(EVReflectionではなく、私ができるほどに変更したもの)を使用するために、もはやそれを働かせない)。アプリケーションサーバーとトランザクションするとき、私のコードは、クラス "ServerResponse"のオブジェクトを生成します。このオブジェクトには、複数の変数が含まれています。そのうちの1つは "responseObject"です。ユーザーからメッセージへの任意の数の異なるオブジェクトその他。 Codableはデフォルトで「decodeIfPresent」を使用しないため、特定のトランザクションでエラーが発生していましたが、これを防ぐためにinit(デコーダ:デコーダ)をオーバーライドする必要がありました。今度は、呼び出し元のメソッドによって後で正しいオブジェクト型にデコードするための生のJSON文字列をそのまま残すか、または他の同様の修正を行う方法を考え出すという難題が残っています。結論:私は柔軟性があり、私のサーバーが送信する任意のタイプのオブジェクトを許可するためにresponseObjectが必要です。Swift 4 - コーディング可能 - デコード時にキーにさまざまなオブジェクトタイプを許可する方法
誰かが何か提案があれば、私は感謝します。それが助けになるなら、私はコードを共有することを喜んでしますが、この質問は本質的に概念的なものであるので、私はそれができないと思いました。
いくつかのタイプのうちの1つであるかもしれないものを解読しようとする一般的な解決方法は、それを1つのタイプとして解読しようとすることであり、タイプの不一致により失敗した場合は次のタイプを試みます。 'responseObject'はこれと似ていますか、まったく制約のないタイプですか? JSONペイロードの外観を具体的に例を挙げて教えてください。 –
それは完全には拘束されていませんが、渡すことができる私のアプリのこの時点で34種類のオブジェクトがあります。私が本当に好きなのは、生のJSONを完全にそのままにしておき、呼び出しメソッドから手動でデコードできるようにすることです。それを行う方法はありますか? – Joel
現時点ではありません。これは現在、検討中の機能です。 –