NSUserDefaultsで様々な型に簡単にアクセスするライブラリをGitHubへコミットしました。

https://github.com/stack3/NSUserDefaults-STHelper
MITライセンスです。

標準のNSUserDefaultsは以下のようなデータ取り出しメソッドがありますが、サポートしている型が少ないです。

  • arrayForKey:
  • boolForKey:
  • dataForKey:
  • dictionaryForKey:
  • floatForKey:
  • integerForKey:
  • objectForKey:
  • stringArrayForKey:
  • stringForKey:
  • doubleForKey:
  • URLForKey:

本ライブラリのカテゴリメソッドをimportすることで様々な型を簡単に取り出せます。またデータが格納されていなかったときはデフォルト値を返すこともできます。

unsigned long longとNSArrayの例。

NSUserDefaults *ud = [NSUserDefaults standardUserDefaults];

unsigned long long varULongLong = [ud st_unsignedLongForKey:@"unsignedLong"];
varULongLong = [ud st_unsignedLongForKey:@"unsignedLong" defaultValue:ULONG_MAX];   
[ud st_setUnsignedLong:LONG_MIN forKey:@"unsignedLong"];

NSArray *array = @[@1, @2];
array = [ud st_arrayForKey:@"array" defaultValue:array];

他にも様々な型をサポートしています。

ちなみにNSDictionaryで同様のカテゴリメソッドを追加したものもあります。
http://blogios.stack3.net/archives/293