我将 Facebook sdk 代码添加到我的项目中,然后出现此错误,因为我已经有一个 json 库,因此我从计算机和项目中删除了 Facebook json 库,但仍然出现此错误。我在整个项目中搜索“@interface SBJsonBase”,但只得到一个结果。当我只有一个界面时,怎么能说它是重复的?是否包含两次文件?搜索不是总能找到一切吗?
5 回答
这可能有帮助吗?删除您的派生数据并做一个干净的项目,然后尝试再次构建
我有一个类似的问题。这是一个小的搜索,但我可以在不创建新项目等的情况下解决它......问题是我有一个导入 A 类的 B 类。然后我有一个导入 B 类和 A 类的类。当我这样做了,就出现了这些问题。例如。SOAP Web 服务类导入通过 Web 传递的所有实体。
类 goToSchoolWebservice。
导入“person.h”
导入“学校.h”
...
然后我有一个用于缓存的 Singleton 类,该类具有 Logged in Person 以及对 webservice 类的引用。
导入“person.h”
导入“goToSchoolWebservice.h”
--> 这是哪里出错了!!因此,请注意这些循环引用。它不是那么容易检测到它们!
如果您使用#include 而不是导入,则使用此技术来最大程度地减少重复项:在界面的开头(实际上就在它之前)检查定义,如果未定义,则定义它并继续定义您的界面。这是一个例子:
#ifndef __NetworkOptionsViewController__H // check if this has every been imported before
#define __NetworkOptionsViewController__H
#import "blahblah.h"
@interface NetworkOptionsViewController : UITableViewController
{
NSMutableArray* somevariable1;
int somevariable2;
}
@end
#endif
- 就我个人而言,我收到了这个错误,因为我班级的文件路径错误。我检查了文件检查器,我的类文件没有在 Classes 文件夹中定义,即使 IDE 说是。我删除了它们并再次复制它们。
对于那些仍然收到此错误的人,尽管遵循了标头导入约定:我在导入已从项目中删除的标头时收到此错误。相反,在我的项目的旧备份中找到了丢失的标头(我在 Git 中做一些破坏性的事情之前所做的),并且该文件导致了循环导入。
我通过将所有导入移动到前缀头文件解决了类似的问题。