NSUserDefaults objectForKeyメソッドは、nilではなく「0」の文字列を返すのはなぜですか?
ドキュメントには、
戻り値指定されたキーに関連付けられたオブジェクト。キーが見つからなかった場合はnil。
NSDate * date = [[NSUserDefaults standardUserDefaults] objectForKey:OVERTIME_RATE_MARKER];
if (date) {
//something
}
上記の条件ステートメントは常に実行されます。これは、オブジェクトが見つからない場合、クラスのオブジェクトを返すためです:__NSCFStringwith"0"。「nil」を返す必要がある場合
もちろん、文字列の「0」をテストすることもできます。しかし、私は本当にそれをしたくありません。
タイプにもIDを使ってみました。「0」の__NSCFStringを取得し続けます。
誰かが私がこれを理解するのを手伝ってもらえますか?
どんな助けでも大歓迎です!
ありがとうございました