谁能解释一下@class
声明在Objective-C中的作用以及我们应该在什么情况下使用这个声明?
最佳答案
这是一个前向声明。它本质上是告诉编译器有一个同名的类。我在接口(interface)声明中使用它:
@class Foo;
@interface Bar : NSObject {
Foo *someFoo;
}
@end
当然,您可以导入 Foo
的 header :
#import "Foo.h"
@interface Bar : NSObject {
Foo *someFoo;
}
@end
但是如果 someFoo
没有暴露给 Bar
的用户,他们会导入一个额外的对他们没有用的头文件。使用 @class
声明,Bar
的用户看不到额外的导入,因为 Foo.h
将在 的实现文件中导入条码
.
关于objective-c - @class 在 Objective-C 中做了什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3904663/