我对Objective-C中的导入感到困惑,因此我想确定一些事情:
我有Ah和Am,Bh和Bm,我目前在 Am 中添加了#import "B.h"
,在 Bh 中添加了#import "A.h"
,它正在运行,没有警告或错误,但这会产生任何问题吗?
我无法使用@class
的原因是因为我在A.h中声明了一个协议和一个枚举,并使用它B.h,@class
无法捕捉到
感谢您的帮助。
答案 0 :(得分:0)
#import确保文件只被包含一次,这样你就不会有递归包含的问题。但是,最体面的 头文件保护自己无论如何
来自What is the difference between #import and #include in Objective-C? 如果您使用的是#import,那么在文件以递归方式相互添加的情况下,它并不重要。
答案 1 :(得分:-1)
你尝试过C路吗?
#ifndef MYCLASS
#define MYCLASS
#import "A.h"
#endif