我有两个课程:RequisitionGetdetails
和RequisitionRelease
。 .m文件中的#import USAdditions.h
现在在类文件中:ReqDetailViewController.m
我#import RequisitionGetdetails.h
和R equisitionRelease.h
当我编译时,我得到了USAdditions.h中定义的所有对象的重复接口定义
我只使用#import
。我的代码中没有#include。我认为#import应该像这样处理重复的定义。
如果我注释掉#import RequisitionRelease.h
,那么重复的错误会消失,这会告诉我编译器从USAdittions.h
两次通过其他两个类引入定义,但不会忽略重复。
我理解#import是如何工作的我错了吗?任何想法如何解决这一问题? 我看过一些类似的帖子,但没有一个解决方案适用于我或帮助过我。
答案 0 :(得分:2)
您是某些导入.h
文件而不是.m
文件?
如果你#import
.m
文件,编译器几乎会复制粘贴整个文件,导致重新定义方法和类。
我过去曾经这样咬过我。
答案 1 :(得分:0)
除了Benoit的回答,你的.h文件中还有@implementation
个吗?如果是这样,那么您将在两个翻译单元中定义(而不仅仅是声明)该类。类定义最终存在于两个.o文件中,并且在链接时,您将获得重复的定义。
您的头文件应该只有声明,而不是定义。