frameworkのimportを簡略化する(@importについて)

  • 14
    Like
  • 0
    Comment
More than 1 year has passed since last update.

話題としてはかなり古いものになってしまうんですが、
Modulesとかsemantic importって呼ばれるものについてです。

参考 : @import vs #import - iOS 7 (http://stackoverflow.com/questions/18947516/import-vs-import-ios-7)

Appleのサンプルコードなどで、最近はimportの大半が@import UIKit;なんて
表現されているのに実際使っているアプリで書いてみると
エラーが出て使えないのでよく分からない記述だなと思ってたんですが
Xcode5あたりで新規作成したprojectからデフォルトでYESになっている機能だったようです。

基本的に古いprojectをベースにして開発したり、アップデートすることが多いので
これに気づくのが遅れました。普通に#importでも動いてたので。

この機能を利用するためには、BuildSettingsからEnable Modules (C and Objective-C)をYESにする必要があります。
(※古いプロジェクトでは、デフォルトがNOになっている)

1015ss.png

これによって、わざわざframeworkのヘッダファイルを解析しなくて良くなるということです。
参考記事にあるように、これまで
#import <Cocoa/Cocoa.h> などのように書いていた箇所は
@import Cocoa;で置き換えられます。

また、一部のヘッダファイルのみを呼び出したい場合も以下のように記述できるようです。
@import iAd.ADBannerView;