相关疑难解决方法(0)

@class vs. #import

根据我的理解,如果ClassA需要包含ClassB头,则应该使用前向声明,而ClassB需要包含ClassA头以避免任何循环包含.我也明白a #import是一个简单的,ifndef所以包含只发生一次.

我的询问是这样的:什么时候使用#import,什么时候使用@class?有时如果我使用@class声明,我会看到一个常见的编译器警告,如下所示:

warning: receiver 'FooController' is a forward class and corresponding @interface may not exist.

真的很想理解这一点,而不是仅仅删除@class前向声明并抛出一个#import静音编译器给我的警告.

cocoa cocoa-touch objective-c

707
推荐指数
10
解决办法
17万
查看次数

你把#import放在.h或.m文件中吗?

我不知道Objective-C风格.

我有FooClass.[hm]依赖于BarClass.[hm]的实现(虽然不是它的接口).我可以#import "BarClass.h"直接在FooClass.m中,也可以通过FooClass.h间接访问.我想知道这个的共同选择.

objective-c

23
推荐指数
1
解决办法
4296
查看次数

标签 统计

objective-c ×2

cocoa ×1

cocoa-touch ×1