@class我可以知道正确使用它

时间:2010-09-06 17:39:23

标签: iphone objective-c

任何人都可以使用@class指出文档或详细讨论。 我一直在使用它,但还没有完全理解它。 我想更多地了解它并完全理解它。

提前谢谢。

3 个答案:

答案 0 :(得分:4)

// header.h
#import <Foundation/Foundation.h>
@class reference;

@interface class
...
@end
// implementation.m
#import "header.h"
#import "reference.h"

@implementation class
...
@end

如果您有一个在多个文件之间循环引用的类,并且导入包含@class指令所描述的类的标题,则可以使用此方法,并且可以安全地循环引用该类。

答案 1 :(得分:4)

@class用于declare一个班级。基本上告诉编译器:“嘿,在源代码中有一个名为 somewhere 的类。定义将在稍后出现,但我现在可以将其名称用作指针类型。”

另见:
developer.apple.com
SO: Class vs Import
MacRumors

注意:正如Richard J. Ross III所指出的,@class关键字允许循环引用(当两个类都相互依赖时),而不会破坏构建。

答案 2 :(得分:2)

@class通常用作.h文件中的转发声明。它的作用是说一个名为ClassName的类实际上存在而不必导入和读取ClassName.h文件,因为它可能会被.m文件导入