1

我有两个班级:RequisitionGetdetailsRequisitionRelease。两者都#import USAdditions.h在 .m 文件中

现在在类文件中:ReqDetailViewController.mI#import RequisitionGetdetails.h和 R equisitionRelease.h,当我编译时,我得到了 USAdditions.h 中定义的所有对象的重复接口定义

我只用#import. 我的代码中的任何地方都没有#include。我认为#import 应该处理这样的重复定义。如果我注释掉#import RequisitionRelease.h重复的错误就会消失,这告诉我编译器它USAdittions.h通过其他两个类从两次中提取定义,但不会忽略重复。

我理解#import 是如何工作的有错吗?任何想法如何解决这一问题?我看过一些类似的帖子,但没有一个解决方案适用于我或对我有帮助。

4

2 回答 2

2

确定要导入.h文件而不是.m文件吗?

如果你#import.m文件编译器几乎复制粘贴整个文件,导致方法和类的重新定义。

过去我就这样咬过我。

于 2013-09-20T18:36:27.690 回答
0

除了 Benoit 的回答之外,您的 .h 文件中是否包含@implementations ?如果是这样,那么您将在两个翻译单元中定义(不仅仅是声明)该类。类定义最终出现在两个 .o 文件中,并且在链接时,您会得到重复的定义。

你的头文件应该只有声明,而不是定义。

于 2013-09-20T23:08:40.210 回答