关于@import
是iOS 7之后的新特性语法,这种方式叫Modules(模块导入) 或者 "semantic import(语义导入)" ,是一种更好的头部预处理的执行方式,这iOS 7之后你能通过@import
语法来导入任何的framework,Modules是一种将所有可执行的framework打包在一起,貌似这种方式比起传统的#import
更安全和更高效。
而且另外一个最大的改进就是使用@import
之后,你不用在project settings那里添加framework,系统会自动帮你加载上了,方便了很多,也避免了很多不必要的错误,例如忘记了加入framework而出现的 "Linker Error"。
你可以通过输入@import
出现的自动提示来看看可以导入的framework列表
Modules功能在Xcode5新建项目的时候已经默认自动开启使用,如果在旧的项目中要使用Modules的话,则打开Target->Build Settings->搜索"Modules",找到Enable Modules(C and Objective-C)设置为Yes即可,"Link Frameworks"同样设置为Yes.
关于WWDC的给出的解释
使用Modules方式:
将 #import <MapKit/MapKit.h>
替换为 @import MapKit;
即可
而且你也可以只加载framework里面的submodules
@import MapKit.MKAnnotation;
原创作者:老区
Email: leo.au@foxmail.com
QQ:81508056
微信ID:kingOU