20

私が認識している 2 つの状況で、次のエラーが発生します。

ld: warning: instance method 'resetAudioSystem' in category from /opentok-ios-sdk/Opentok.framework/Opentok(OTPublisher+AudioSnoop.o) conflicts with same method from another category
ld: warning: instance method 'attachAudioSnoopBlock:' in category from /opentok-ios-sdk/Opentok.framework/Opentok(OTPublisher+AudioSnoop.o) conflicts with same method from another category
ld: warning: instance method 'setVideoSnoopDelegate:' in category from /opentok-ios-sdk/Opentok.framework/Opentok(OTPublisher+VideoSnoop.o) conflicts with same method from another category

可能性 1:カテゴリ インスタンス メソッドが 2 回宣言されています。(ここで説明: SO )

しかし、 (Xcode または Grep で) 3 つのインスタンス メソッドのいずれかを検索すると、2 回宣言されていることがわかりません。

可能性 2:誤って .m ファイルをインポートする。(ここで説明: SO )

しかし、私はすべてのインポートをチェックし、プロジェクト全体でフレームワークを 1 回だけインポートしました。また、ビルド フェーズで 1 回だけ表示されます。

おそらく最後に追加されたカテゴリ定義が使用され、それがたまたま正しいため、私のプログラムはクラッシュせずに実行されます。(ソース

質問 1:追加する前に、2 つのカテゴリがどこにあるかを確認する方法はありますか?

質問 2:これを解決する方法について他に何か考えはありますか?

注: Opentok フレームワークはバイナリです

で発生します:

xcode 4.6 & xcode 5

iOS6 & iOS7

4

4 に答える 4

6

メソッドの実装を文字通りヘッダー ファイル ( *.h) に貼り付けたため、このエラーが発生しました。ただし、うまくいきました。唯一の症状 - 警告。

実装が正しい ( *.m) ファイルにあるかどうかを確認してください。

于 2015-04-22T18:05:43.940 に答える
4

これはリンカのバグのようです。おそらく、SDK が複数回リンクされているか、-ObjC が欠落しているか、あるべきでない場所に存在しています。リンカ フラグを確認します。すべての OpenTok フレームワークを削除してみて、プロジェクトにないことを確認してから、再ダウンロードして再度インストールしてください。

于 2013-11-19T00:16:05.717 に答える