これは、ブリッジング ヘッダーに含まれているが、適切なターゲットに追加されていないファイルから拡張メソッドを呼び出そうとしたときに発生します。
これを修正するには、ファイルが現在実行中のものと同じターゲットのメンバーであることを確認してください。
たとえば、UIColor+Utils.m
WatchKit 拡張機能から Objective-C コード (例: ) を呼び出そうとする場合、.m ファイル (例: ) のターゲット メンバーシップセクションUIColor+Utils.m
に WatchKit 拡張機能が含まれている必要があります。
詳細については、以下を参照してください。
ファイルに .h ファイルを含めたがBridging-Header.h
、ファイルをターゲットに追加するのを忘れた場合、次の動作が発生します。
独自のクラスでメソッドを呼び出そうとすると (例: ABCClass.doSomething()
):
- コード補完が得られます。
- ビルド エラーが発生します:
Undefined symbols for architecture x86_64
。
クラス拡張メソッドを呼び出そうとすると (例: UIColor.doSomething()
):
- コード補完が得られます。
- ビルド エラーや警告は表示されません。
- その行を実行しようとすると、クラッシュが発生します:
unrecognized selector sent to class
.