2009年03月05日

Info.plist からバージョン番号を取得する

 アプリケーションの中で、そのアプリについての情報を表示させたい場合があります。Mac OS X (Cocoa アプリ)の場合は「(アプリケーション名)について」というメニューで、自動的に名称とバージョン番号を表示することができるのですが、iPhone アプリでは自作する必要があります。
 バージョン番号は Info.plist に記述した「Bundle Version」を参照します。コンテキストメニューから「Show Row Keys/Values」を選択すると、実際は CFBundleVersion をキーとしていることがわかります。

Infoplist

 Info.plist に記述した値を取得する専用のメソッドとして、NSBundle の objectForInfoDictionaryKey: が用意されています。引数に CFBundleVersion を指定することでバージョン番号が取得できます。番号といっても実際には文字列(NSString)です。

NSString *versionString;
versionString = [[NSBundle mainBundle]
objectForInfoDictionaryKey: @"CFBundleVersion"];

 Info.plist 全体を NSDictionary として取得したい場合は、同じく NSBundle の infoDictionary メソッドを使います。

 ちなみに、CFBundleVersion の接頭語「CF」は、Core Foundation を意味します。実際に、Core Foundation で文字列を扱う CFStringRef として kCFBundleVersionKey が定義されています。
 CFStringRef は、キャストするだけで NSString として扱えます。つまり、先ほどの処理は以下のように書いても同じです。
NSString *versionString;
versionString = [[NSBundle mainBundle]
objectForInfoDictionaryKey: (NSString *)kCFBundleVersionKey];

 Core Foundation についての詳細、Cocoa との関係などは、HMDT の「CoreFoundation の秘密 | HMDT Programming Tips」などが参考になります。
posted by PLT at 23:57| Comment(0) | TrackBack(0) | iOS SDK
この記事へのコメント
コメントを書く
お名前: [必須入力]

メールアドレス:

ホームページアドレス:

コメント: [必須入力]

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。
この記事へのトラックバックURL
http://blog.sakura.ne.jp/tb/27391960
※ブログオーナーが承認したトラックバックのみ表示されます。

この記事へのトラックバック