iOS Info.plistの情報をコードから読み込む
前のエントリで,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