实现FBConnect时重复的接口定义

时间:2012-08-01 01:05:41

标签: iphone ios facebook fbconnect

我正在尝试将FBConnect添加到包含SBJson框架的应用程序中。但是,当我尝试编译项目时,我得到了这两个错误:

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

我该怎么做才能解决此错误?谢谢你的帮助。

2 个答案:

答案 0 :(得分:4)

删除

#import FacebookSDK/FacebookSDK.h

在您的项目中

我开始使用FacebookSDK,但后来我对它的当前状态感到失望,并尝试使用旧的" FBConnect",这就是我如何得到错误

答案 1 :(得分:1)

有两种可能性:

你有两个同名的接口。使用项目菜单选项中的Xcode查找来查找SBJsonWriter的实例。然后重命名其中一个接口 不知何故,你设法导入.h文件两次。检查以确保始终使用#import而不是#include。

关于#import / #include:

的更多信息

包含盲目包含#include语句位置的文件。这意味着如果您在.m中两次#include一个文件,您将获得该文件的两个副本。几乎所有传统的C #include文件都包含以下所有内容:

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

//  entire content of #include file

#endif

以上他有时被称为包含保护宏。

在Objective-C中,如果#import文件,编译器将执行检查以确保它尚未导入。因此通常省略防护装置。因此,如果你#include一个应该被#imported的文件,那么两个检查都不会完成,你有时会得到重复的定义。