NSCoderから指定した型で値を取り出したい時はよくあると思います。オブジェクト型なら自分が望む型なのかチェックする必要があります。それらを簡単にするカテゴリメソッドを作り、GitHubにコミットしました。MIT Licenseです。

NSCoder+STHelper

使い方

以下のファイルを自分のプロジェクトへコピーするだけです。

  • NSCoder+STHelper.m
  • NSCoder+STHelper.h

指定した型で値を取り出す

NSInteger value = [aDecoder st_decodeIntegerForKey:@"value"];

NSInteger型で値を取り出す。格納されている値がNSNumberもしくは数値文字列でなければ0を返します。

NSInteger value = [aDecoder st_decodeIntegerForKey:@"value" defaultValue:123];

値が取得できなかった時返す値を0以外にしたい時は、defautValue引数を指定します。

その他、st_decodeDoubleForKey,st_decodeArrayForKeyなど色々な型で取り出すメソッドを用意しました。

数値や論理値(BOOL)を入れるのを簡単にするメソッドも用意しています。

[aCoder st_encodeInteger:123 forKey:@"value"];