Swift 4.2 が出てきて、ObjectMapper
他のいくつかのポッドを使用しているときに、プロジェクトでこのエラー メッセージが表示されます。
Swift 4.1.2 でコンパイルされたモジュールを Swift 4.1.50 にインポートできない
では、プロジェクトの更新を開始して Swift 4.2 に移行するように Xcode に指示するにはどうすればよいでしょうか?
Swift 4.2 が出てきて、ObjectMapper
他のいくつかのポッドを使用しているときに、プロジェクトでこのエラー メッセージが表示されます。
Swift 4.1.2 でコンパイルされたモジュールを Swift 4.1.50 にインポートできない
では、プロジェクトの更新を開始して Swift 4.2 に移行するように Xcode に指示するにはどうすればよいでしょうか?
Swift 4.2ではImplicitly Unwrapped Optional (IUO)の実装が変更されています。は T と見なされますか? with およびコンパイラーが暗黙の unwrap オプションであることを知るための追加のフラグ。
IUO の新しいメンタル モデルは、あなたが検討するものです。の同義語になるには?さらに、宣言にフラグを追加して、宣言された値を暗黙的にアンラップできることをコンパイラーに知らせます。
この変更により、ソースの互換性の問題が発生し、正常にコンパイルする前にコードの変更が必要になる場合があります。
Swift 3 では、var a: Int? のような宣言 型が Optional になり、var b: String! のような宣言になります。b は ImplicitlyUnwrappedOptional 型になります。Swift 4.2 で変更されたため、Swift 4.2に付属する Xcode 10のObjectMapperでエラーが表示され、Xcode 10 の 3.* でも同様の実装が行われました。
Objectmapper ライブラリには、Swift 4.1 で以前に警告を表示していた関数の宣言がいくつかあり、現在は Swift 4.2 でエラーとして表示されています。Xcode 9.4 および swift 4.1 での警告については、以下の画像を参照してください。
問題を修正したObjectMapper GitHub リポジトリにいくつかのプル リクエストがありますが、最近承認されたコンパイラ ディレクティブ機能を使用しているため、議論に従って新しい Xcode ベータ版がリリースされるのを待っています。
更新: この問題は ObjectMapper 3.3.0 バージョンで修正されています。