我有一个包含带属性和方法的接口的头文件(让我们称之为E.h),Xcode通知我这个头字段内的语法错误,这没有任何意义,因为E.h不包含任何错误。 这些错误仅在某些条件下出现:
E.h已包含在A.h中,并且没有错误。
当E.h不包含在B.m中时,没有错误并且编译得很好,但如果我将其包含在B.m中,则会出现错误。 (B.m不要使用E.h的任何代码)
附加信息:B.m包括B.h,然后是E.h.
我没有找到包含源代码的相关信息,因为它代表了数千行,我不会要求您分析它。 我需要一些提示,了解原因和起点。
提前致谢。
答案 0 :(得分:0)
通过使用Xcode中的“显示预处理”选项,我发现名为@property (retain) NSString *MY_STRING;
的E.h中的属性已替换为@property (retain) NSString *@"My String"
。似乎有一个define MY_STRING @"My String"
包含在B.h中包含的不同的头文件中,它本身包含在B.h之前的B.m中。很难发现!当天的课程:永远不要用大写写出你的变量。
答案 1 :(得分:-1)
在C ++中,这可行,也许会对你有帮助:
在文件E.h
中#ifndef __ECLASS__
#define __ECLASS__
<here original declarations from E.h>
#endif