这是一份前瞻性声明.它本质上告诉编译器有一个同名的类.我在接口声明中使用它:
@class Foo;
@interface Bar : NSObject {
Foo *someFoo;
}
@end
当然,您可以导入Foo
的标题:
#import "Foo.h"
@interface Bar : NSObject {
Foo *someFoo;
}
@end
但如果someFoo
不向Bar
的用户公开,他们会导入一个对他们没有用处的额外头文件.对于@class
声明,Bar
的用户看不到额外的导入,因为Foo.h
将被导入Bar
的实现文件中.