Objective-Cの勘所2 インポートの扱い

前回でObjective-Cの開発環境や用語についてまとめたので今回からObjective-Cのコーディングについて。

インポートについて

クラスライブラリからインポート

#import <Foundation/Foundation.h>

クラスライブラリ(CocoaやCocoa Touchに予め用意されているクラス)からインポートする場合は上記のような書式になる。

<>で囲んでインポートすると、指定されたディレクトリを探しにいく挙動を取る。ソースファイルと同じカレントディレクトリは探さない。上記ではFoundationフレームワーク(API)をインポートしている。プロジェクトで使用しているフレームワーク(API)はプロジェクト内のFrameworksグループから確認できる。

自作ファイルからインポート

#import "ファイル名.h"

""で囲む場合、コンパイラはまずソースファイルと同じカレントディレクトリ内でヘッダファイルを探す。そこになければ、#importのパスに指定されているディレクトリを探しに行き、そこになければシステム側のディレクトリ(標準のインクルードパスに含まれているフォルダ)を探す。

インポートしたCocoa Touchのフレームワークはどこに存在するのか

上記では「プロジェクトで使用しているフレームワーク(API)はプロジェクト内のFrameworksグループから確認できる」と書いていたが、Frameworksから確認できるフレームワークがシステム内のどこに置かれているのかが気になったので、実際に調べてみた。

まず、FinderからXcode.appのあるディレクトリまで移動する。Xcode.appを右クリックして「パッケージの内容を表示」を選択する。ここから少し下のディレクトリにフレームワークが格納されている。

具体的には以下のパスにフレームワークが置いてあった。

/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.1.sdk/System/Library/Frameworks

参考
インポート