Swift 4 モードでの Swift 3 @objc 推論の使用は非推奨ですか? 質問する

Swift 4 モードでの Swift 3 @objc 推論の使用は非推奨ですか? 質問する

簡単に言うと、Xcode 9 Beta を使用しているときに、次の警告が表示されました。

Swift 4 モードでの Swift 3 @objc 推論の使用は非推奨です。非推奨の @objc 推論の警告に対処し、「非推奨の Swift 3 @objc 推論の使用」ログを有効にしてコードをテストし、Swift 3 @objc 推論を無効にしてください。**

いくつか調査しましたが、まだ問題を解決する方法がわかりません。この問題を解決するためのヒントや、何が起こっているのか説明していただければ幸いです。

私の目標は、自分のコードで何が起こっているかをより深く理解することです。

ベストアンサー1

ターゲットの「Swift 3 @objc Inference」ビルド設定を「デフォルト」に変更することで、この警告を解消しました。

Xcode9 で Swift 3 @objc 推論を無効にする

からこの記事:

Swift 4 より前では、コンパイラーによって一部のSwift 宣言が Objective-C で自動的に使用できるようになりました。たとえば、NSObject からサブクラス化された場合、コンパイラーはそのようなクラスのすべてのメソッドに対して Objective-C エントリ ポイントを作成しました。このメカニズムは @objc 推論と呼ばれます。

Swift 4 では、このような自動 @objc 推論は、 Objective-C エントリ ポイントをすべて生成するにはコストがかかることから非推奨になっています。「Swift 3 @objc 推論」設定を「オン」にすると、古いコードが機能します。ただし、対処が必要な非推奨の警告が表示されます。これらの警告を「修正」し、設定を新しい Swift プロジェクトのデフォルトである「デフォルト」に切り替えることをお勧めします。

以下も参照してくださいこのSwiftの提案詳細については。

おすすめ記事