前のエントリで,svn,gitのリビジョンやビルド番号をInfo.plistに自動的に書き込む方法を紹介しました.
それだけでは,アプリケーションでそれを利用できないので,Info.plistの情報を読み込む方法を紹介します.

NSString *key = @"CFBundleSubversionRevision";
NSString *value = [[[self mainBundle] localizedInfoDictionary] objectForKey:key];

これだけです.簡単ですねー.
一応保険ののために,ローカライズデータがない場合にも対応するため,こうするのもいいでしょう.


if ([[[self mainBundle] localizedInfoDictionary] objectForKey:key])
    return [[[self mainBundle] localizedInfoDictionary] objectForKey:key];
return [[[self mainBundle] infoDictionary] objectForKey:key];

んで,これだと使いにくいので,カテゴリでクラスメソッドとして実装しておけば使いやすいです.

@implementation NSBundle(category)
+ (id)infoValueFromMainBundleForKey:(NSString*)key {
    if ([[[self mainBundle] localizedInfoDictionary] objectForKey:key])
        return [[[self mainBundle] localizedInfoDictionary] objectForKey:key];
    return [[[self mainBundle] infoDictionary] objectForKey:key];
}
@end