[iOS SDK] NSUserDefaults boolForKey でNOが返ってくるとNOが格納されていたのか値が存在しなかったのかが不明
NSUserDefaults Class Reference
にあるとおり、NSUserDefaultsのboolForKeyは返り値がBOOLで、値が格納されていない場合もNOを返してくるので、NOが格納されていたのか、存在しなかったのでNOが返ってきたのかを判別できない。
値が格納されていたのかを知る方法がないかをstackOverflowで調べたところ、そもそも考え方が間違っていることが判明。
iphone – NSUserDefaults boolforKey limitation by design? – Stack Overflow
registerDefaults:(NSDictionary*) でデフォルト値を入れておいて、もし存在しなければデフォルト値を返してもらうようにすべきとのこと。
そういえば前も調べたことがある気がする。ということでブログにメモをしておく。
しかし一応、objectForKey: を使えば値が格納されていたのかを知ることもできるとのことだった。
(その場合、NSNumber として値を返そうとするため、存在しない場合は nil が返ってくる)
関連記事
-
-
Apple Watch 対応アプリようやくSubmit完了
ようやく Apple Watch 対応したアプリのSubmitが完了した。 とりあえずの対
-
-
Amazon Book Marker 取り下げ
昨日2010/01/16(土)の朝に米Amazonより、ライセンス規約に違反していると警告がきたため
-
-
iPhone 3GS/4 で使える Bluetooth キーボード ELECOM TK-FBP017BK
フォローしている人のつぶやきで発見した記事で知ったキーボード。iPhone4ユーザー必携Blueto
-
-
EverLearn Ver.1.2.0 が公開されました
EverLearn Ver.1.2.0 が昨日公開されました。 今回は8/28にSubmitして、
-
-
[iOS SDK本] Beginning iOS 5 Games Development
久しぶりにApress本を購入。 Beginning iOS 5 Games Developmen
-
-
Kickstarter で iPhone/Android で使える腕時計 Pebble に出資してみた
Kickstarter で28時間で100万ドルを調達したという Pebble E-Pape
-
-
[iOS SDK] UIPickerView の文字が表示されない
おんぷちゃん for iPad のiOS7対応をしているときに遭遇した問題。 UIPopove
-
-
EDAMTimestamp と NSDate の相互変換
Evernote SDKを使ったアプリで EDAMTimestamp を DBに格納する前に NSD
-
-
[iOS] アプリ名を変更したところなぜかビルドが通らなくなり苦労した話
アプリ名にiPadと入れるとRejectされる に書いたとおり、アプリ名に iPad が入っていた
-
-
Invalid EvernoteSession で落ちる問題に遭遇
EverLearn アプリのバージョンアップ版を作成したのでテストをしていたところ、iOS5 で起動