我已阅读了许多与此错误相关但仍面临此问题的帖子。
我在我的项目中使用MMDrawerController,当我在app委托文件中声明MMDrawerController时如同MMDrawerController *drawerController;
然后工作正常但是当我在Constant.h文件中声明它并在appDelegate文件中导入Constant.h文件并尝试创建构建时它会给我以下错误
duplicate symbol _drawerController in:
/Users/icecube/Library/Developer/Xcode/DerivedData/VenueFinder-eowuotuoweptcnfmzowyaajchlnv/Build/Intermediates/VenueFinder.build/Debug-iphonesimulator/VenueFinder.build/Objects-normal/i386/NavigationViewController.o
/Users/icecube/Library/Developer/Xcode/DerivedData/VenueFinder-eowuotuoweptcnfmzowyaajchlnv/Build/Intermediates/VenueFinder.build/Debug-iphonesimulator/VenueFinder.build/Objects-normal/i386/ViewController.o
duplicate symbol _drawerController in:
/Users/icecube/Library/Developer/Xcode/DerivedData/VenueFinder-eowuotuoweptcnfmzowyaajchlnv/Build/Intermediates/VenueFinder.build/Debug-iphonesimulator/VenueFinder.build/Objects-normal/i386/NavigationViewController.o
/Users/icecube/Library/Developer/Xcode/DerivedData/VenueFinder-eowuotuoweptcnfmzowyaajchlnv/Build/Intermediates/VenueFinder.build/Debug-iphonesimulator/VenueFinder.build/Objects-normal/i386/AppDelegate.o
ld: 2 duplicate symbols for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)
不知道我做错了什么?我已经检查过而不是导入.m文件而不是.h
如果
MMDrawerController *drawerController;
这个声明在appDelegate文件中,然后它工作正常,但如果这个声明在Constant.h文件中,并在AppDelegate.m文件中导入Constant.h文件,那么它会给出错误。
答案 0 :(得分:0)
同一个变量在两个类中都像gobally一样退出,所以在本地声明它,比如
@interface ViewController : UIViewController{
MMDrawerController *drawerController;
}
似乎你在两个类的实现部分声明了这个变量,我的意思是 .m 文件。
像
@implementation ViewController
MMDrawerController *drawerController;
答案 1 :(得分:0)
通过pod安装MMDrawerController pod' MMDrawerController','〜> 0.5.7' 强>
删除项目中库的手动导入。 Xcode正在为您的MMDrawerController获取重复路径,因此最好在构建设置中检查 LINKER搜索路径。