LoginSignup
20

More than 5 years have passed since last update.

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

Last updated at Posted at 2015-10-15

話題としてはかなり古いものになってしまうんですが、
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;

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
20