Objective c #导入正在加倍接口定义并导致错误
我有两个类:Objective c #导入正在加倍接口定义并导致错误,objective-c,Objective C,我有两个类:requisiongetdetails和requisionrelease。在.m文件中导入USAdditions.h 现在在类文件中:ReqDetailViewController.mI#import requisiongetdetails.h和RequisitionRelease.h当我编译时,我会得到USAdditions.h中定义的所有对象的重复接口定义 我只使用#import。我的代码中没有包含任何内容。我以为import应该处理这样的重复定义。 如果我将#import re
requisiongetdetails
和requisionrelease
。在.m文件中导入USAdditions.h
现在在类文件中:ReqDetailViewController.m
I#import requisiongetdetails.h
和RequisitionRelease.h
当我编译时,我会得到USAdditions.h中定义的所有对象的重复接口定义
我只使用#import
。我的代码中没有包含任何内容。我以为import应该处理这样的重复定义。
如果我将#import requisionrelease.h
注释掉,重复的错误就会消失,这告诉我编译器会通过另外两个类两次从useditions.h
中提取定义,但不会忽略DUP
我对导入工作原理的理解是否错误?有没有办法解决这个问题?
我看到过一些类似的帖子,但没有一个解决方案适用于我或对我有帮助。您是否确定导入的是
.h
文件而不是.m
文件
如果导入#.m
文件,编译器几乎复制粘贴整个文件,从而重新定义方法和类
在过去,我曾经被它这样咬过。除了Benoit的答案,你的.h文件中有@实现吗?如果是这样,那么您将在两个翻译单元中定义(而不仅仅是声明)类。类定义最终会出现在两个.o文件中,链接时,会得到重复的定义
头文件应该只包含声明,而不包含定义。检查类中的每个.h,确保没有导入.h也要导入的类。