如何向前声明此对象:
@interface MyClass : NSObject <AVAudioSessionDelegate>
{
}
@end在目标c中
发布于 2013-05-28 18:04:57
这是一个ObjC类型的正向声明:
@class MyClass;这是一个ObjC协议的转发声明:
@protocol AVAudioSessionDelegate;对于那些好奇为什么这很有用的人来说:转发声明可以用来显著减少您的依赖,并显著减少您的构建时间,因为它允许您避免#importing头和/或整个框架(然后#import其他框架)。当不使用转发声明时,许多不必要的头对程序的其他部分是可见的--更改一个头可能会导致重新编译许多文件,并且编译和链接时间将会增加。因为ObjC类型总是作为指针处理(在我们的抽象层),所以在大多数情况下,向前声明就足够了。然后,您可以在@implementation或类继承中声明您的#import,然后ivars可以放入*.m文件中。另一个原因是避免循环依赖。
https://stackoverflow.com/questions/16789252
复制相似问题