objective-c - @class 在 Objective-C 中做了什么?

标签 objective-c

谁能解释一下@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/

相关文章:

objective-c - Cocoa:在实时窗口调整大小期间更新 NSWindow 内容 View 之外的 View ?

objective-c - 如何从 NSSet 返回 NSMutableArray

IOS - 如何修复 "ld: library not found for -lBolts"错误?

objective-c - 带有 Objective C 的 Shapefile

ios - locationManager 'didExitRegion' 没有被调用 iBeacon Xcode

ios - xcode 7 json 总是在 Objective C 中显示错误

objective-c - 你如何在 Xcode 之外编译和运行 objective-c 文件?

应用程序未运行时的 iOS 10 远程通知

iphone - 将我的应用程序带到 Objective-C 的前台

objective-c - JSON 缺失字典(地幔)