首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >objective-c接口的转发声明

objective-c接口的转发声明
EN

Stack Overflow用户
提问于 2013-05-28 18:03:06
回答 1查看 11.7K关注 0票数 13

如何向前声明此对象:

代码语言:javascript
复制
@interface MyClass : NSObject <AVAudioSessionDelegate>
{

}

@end

在目标c中

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-05-28 18:04:57

这是一个ObjC类型的正向声明:

代码语言:javascript
复制
@class MyClass;

这是一个ObjC协议的转发声明:

代码语言:javascript
复制
@protocol AVAudioSessionDelegate;

对于那些好奇为什么这很有用的人来说:转发声明可以用来显著减少您的依赖,并显著减少您的构建时间,因为它允许您避免#importing头和/或整个框架(然后#import其他框架)。当不使用转发声明时,许多不必要的头对程序的其他部分是可见的--更改一个头可能会导致重新编译许多文件,并且编译和链接时间将会增加。因为ObjC类型总是作为指针处理(在我们的抽象层),所以在大多数情况下,向前声明就足够了。然后,您可以在@implementation或类继承中声明您的#import,然后ivars可以放入*.m文件中。另一个原因是避免循环依赖。

票数 29
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16789252

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档