0

SBJson フレームワークを含むアプリケーションに FBConnect を追加しようとしています。ただし、プロジェクトをコンパイルしようとすると、次の 2 つのエラーが発生します。

Duplicate interface definition for class 'SBJsonWriter'
Duplicate interface definition for class 'SBJsonParser'

このエラーを修正するにはどうすればよいですか? 助けてくれてありがとう。

4

2 に答える 2

4

消去

#import FacebookSDK/FacebookSDK.h

あなたのプロジェクトでは

FacebookSDKを使い始めましたが、現在の状態にがっかりして、古い「FBConnect」を使おうとすると、エラーが発生します。

于 2012-11-15T14:40:56.087 に答える
2

2つの可能性があります:

同じ名前の2つのインターフェースがあります。Xcodeのプロジェクトメニューオプションで検索を使用して、SBJsonWriterのインスタンスを検索します。次に、.hファイルを2回インポートすることに成功したインターフェイスの1つに名前を変更します。常に#includeではなく#importを使用していることを確認してください。

#import /#includeに関するもう少し情報:

includeは、#includeステートメントの場所にあるファイルを盲目的にインクルードします。これは、ファイルを.mに2回#includeすると、ファイルのコピーが2つ取得されることを意味します。ほとんどすべての従来のC#includeファイルには、すべてのコンテンツを囲む次のようなものがあります。

// some_file.h
#if !defined SOME_FILE_H
#define SOME_FILE_H

//  entire content of #include file

#endif

上記の彼は、インクルードガードマクロと呼ばれることもあります。

Objective-Cでは、ファイルを#importすると、コンパイラによってチェックが実行され、ファイルがまだインポートされていないことを確認します。その結果、ガードは通常省略されます。したがって、インポートされるはずのファイルを#includeすると、どちらのチェックも実行されず、重複した定義が取得されることがあります。

于 2012-08-01T01:55:12.830 に答える