#import vs @import

weixin_34208283發表於2016-01-08

在xcode 5 下,為了更易於開發,增加了modules和 auto-linking 這兩個新特性。用 @import 來增加框架 到專案中比用 #import會更有效. 我們來看看為什麼:
"Modules for system frameworks speed build time and provide an alternate means to import APIs from the SDK instead of using the C preprocessor. Modules provide many of the build-time improvements of precompiled headers with less maintenance or need for optimization. They are designed for easy adoption with little or no source changes. Beyond build-time improvements, modules provide a cleaner API model that enables many great features in the tools, such as Auto Linking."
Modules and auto-linking

337235-1e892b353a96aa1d.png
E31097C1-1DDB-41C7-83FC-30FFB32A3ACF.png

預設情況下是enabled的。 如果是舊的專案,你可以通過設定"Language - Modules." 來設定Enable Modules 和Link Frameworks Automatically 為Yes。
另外一個使用moudules的好處是你再也不用去連結你的framework到你的專案了。例如,在以前,如果你要使用MapKit這個框架,你要這樣做1) 使用語句 #import <MapKit/MapKit.h> 匯入框架2) 去到專案的build phases 設定項,找到MapKit.framework.並加入到Link Binary With Libraries裡面。如果使用modules的話,只需要加入語句 "@import MapKit;" 你就可以開始使用了,根本不需要連結到你的專案。

當然, @import只能引入以框架形式出現的檔案, 所以, 比如你要引入一個自定義cell的標頭檔案是不能用這個的

相關文章