@class与#import据我理解,在ClassA需要包含ClassB头的事件中,应该使用前向类声明,而ClassB需要包含ClassA头,以避免任何循环包含。我也知道#import是一个简单的ifndef所以包含只发生一次。我的询问是:什么时候使用?#import什么时候才能使用@class?有时如果我用@class声明中,我看到一个常见的编译器警告,如下所示:warning: receiver 'FooController' is a forward class and corresponding @interface may not exist.很想了解这一点,而不是仅仅删除@class向前声明并抛出#import来压制编译器给我的警告。
3 回答
慕妹3146593
TA贡献1820条经验 获得超9个赞
警告:接收器‘MyCoolClass’是一个前向类,可能不存在相应的@接口
#import
@class
@class
#import
例如
@class MyCoolClass
MyCoolClass *myObject;
MyCoolClass
@class
myObject
#import "MyCoolClass.h"
繁星点点滴滴
TA贡献1803条经验 获得超3个赞
只 #import
超类和采用的协议,在头文件( .h
档案)。 #import
在实现中向所有类和协议发送消息( .m
档案)。 其他一切的前向声明。
- 3 回答
- 0 关注
- 459 浏览
添加回答
举报
0/150
提交
取消