ライブラリで SBJson クラスを使用しており、プロジェクトでライブラリを使用しようとすると、メイン プロジェクトでもこれらのファイルを使用しているため、重複シンボル エラーが発生します。
これらのファイルにプレフィックスを追加することはできません。通常、この問題を回避するにはどうすればよいですか?
クラスの名前をプレフィックスで変更することを提案する他の回答を見ましたが、これらのファイルに重複があることは正しいため、これは実際には解決策ではありません-これはオープンソースコードです。
ライブラリで SBJson クラスを使用しており、プロジェクトでライブラリを使用しようとすると、メイン プロジェクトでもこれらのファイルを使用しているため、重複シンボル エラーが発生します。
これらのファイルにプレフィックスを追加することはできません。通常、この問題を回避するにはどうすればよいですか?
クラスの名前をプレフィックスで変更することを提案する他の回答を見ましたが、これらのファイルに重複があることは正しいため、これは実際には解決策ではありません-これはオープンソースコードです。
(Xcode の「ビルド フェーズ」画面を使用して)ライブラリ プロジェクトターゲットから SBJSON (.m) ファイルを削除すると、メイン プロジェクトの一部である SBJSON ファイルを使用してプロジェクトをコンパイルできるようになります。ただし、両方のプロジェクトが異なるバージョンの SBJSON ライブラリを使用している場合、問題が発生する可能性があります。
個人的には、すべてのライブラリ プロジェクトに他のライブラリが含まれていないことを望みますが、それは依存関係であり、依存関係をメイン プロジェクトに含めるのは開発者次第であることに注意してください ( 「Read Me」ファイルなどに)。このため、過去にシンボルの重複で多くの問題が発生しました。
プロジェクトに .h ファイルを含め、SBJson の .m を削除するだけです。そうすれば、コードに .h をインポートしてコンパイルできます。