这个问题在这里已经有了答案:




9年前关闭。






我想知道为什么使用@class。我有一个普遍的理解,它允许您访问您调用的那个类中的东西,但是我不知道它的好处..

最佳答案

@class 指令设置对另一个类的前向引用。它告诉编译器命名的类存在,所以当编译器到达时,比如 @property 指令行,不需要额外的信息,它假设一切都很好并继续前进。

例如,此代码本身就可以正常工作:

#import <UIKit/UIKit.h>
#import "MyExampleClass"

@interface CFExampleClass : NSObject <SomeDelegate> {
}

@property (nonatomic, strong) MyExampleClass *example;

@end

但是,假设我们想要避免循环包含这些头文件(例如 CFExampleClass 导入 o​​jit_code 和 MyExampleClass 导入 o​​jit_code ),那么我们可以使用 MyExampleClass 告诉编译器 CFExampleClass 存在而没有任何提示。
#import <UIKit/UIKit.h>
@class MyExampleClass;

@interface CFExampleClass : NSObject <SomeDelegate> {
}

@property (nonatomic, strong) MyExampleClass *example;

@end

关于iphone - 为什么在objective-c 中使用@class,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10809562/

10-10 20:52