为啥 Objective-C 中的头文件顶部有 import 和 class 语句?
Posted
技术标签:
【中文标题】为啥 Objective-C 中的头文件顶部有 import 和 class 语句?【英文标题】:Why do header files in Objective-C have both import and class statements at the top?为什么 Objective-C 中的头文件顶部有 import 和 class 语句? 【发布时间】:2011-04-23 20:54:00 【问题描述】:两者有什么区别?
【问题讨论】:
【参考方案1】:前向类声明(class statement)只是告诉编译器存在某个类,而不指定它的方法、属性等。当你只需要声明该类的一个变量时,可以使用前向类声明,即大多数时候你在头文件中需要什么。然后你必须在实现文件中导入类。
前向类声明在解决循环依赖方面特别有用。
查看这里了解更多信息:
@class vs. #import Objective-C: Forward Class Declaration【讨论】:
【参考方案2】:@class 声明是一种告诉编译器存在特定类类型而不向其提供类接口的完整声明的方式。当您想要引用一个类而不公开/引用它公开的方法时,这很有用。换句话说,使用类声明,您可以引用头文件中的类,然后延迟将实现导入到您的 .m 文件中。
【讨论】:
以上是关于为啥 Objective-C 中的头文件顶部有 import 和 class 语句?的主要内容,如果未能解决你的问题,请参考以下文章
在类的头文件里尽量少引入其它头文件 <<Effective Objective-C>>
在自定义 Swift 框架中的 Objective-C 文件上使用 Swift
如何在 UICollectionView 顶部添加一个视图以支持诸如搜索栏或 Objective-c 中的过滤器之类的内容?