SBJson フレームワークを含むアプリケーションに FBConnect を追加しようとしています。ただし、プロジェクトをコンパイルしようとすると、次の 2 つのエラーが発生します。
Duplicate interface definition for class 'SBJsonWriter'
Duplicate interface definition for class 'SBJsonParser'
このエラーを修正するにはどうすればよいですか? 助けてくれてありがとう。
消去
#import FacebookSDK/FacebookSDK.h
あなたのプロジェクトでは
FacebookSDKを使い始めましたが、現在の状態にがっかりして、古い「FBConnect」を使おうとすると、エラーが発生します。
2つの可能性があります:
同じ名前の2つのインターフェースがあります。Xcodeのプロジェクトメニューオプションで検索を使用して、SBJsonWriterのインスタンスを検索します。次に、.hファイルを2回インポートすることに成功したインターフェイスの1つに名前を変更します。常に#includeではなく#importを使用していることを確認してください。
#import /#includeに関するもう少し情報:
// some_file.h
#if !defined SOME_FILE_H
#define SOME_FILE_H
// entire content of #include file
#endif
上記の彼は、インクルードガードマクロと呼ばれることもあります。
Objective-Cでは、ファイルを#importすると、コンパイラによってチェックが実行され、ファイルがまだインポートされていないことを確認します。その結果、ガードは通常省略されます。したがって、インポートされるはずのファイルを#includeすると、どちらのチェックも実行されず、重複した定義が取得されることがあります。