実機で NSDateを NSLogで表示してみる
で、同じコードを実機で実行してみた。
iPhoneの「設定」の「言語環境」は「日本語」「日本」「西暦」になってる。(シミュレータの最初の例と同じ)
2012-05-06 22:27:23.472 test[3040:707] Date set to: 2012-05-06 15:00:00 +0000
表示されるのはこれだけ。
2行目の descriptionWithLocale で得た文字列が表示されない。
デバッガで desc の中身を表示してみると…
2012-05-06 22:27:23.472 test[3040:707] Date set to: 2012-05-06 15:00:00 +0000 (lldb) po desc (NSString *) $2 = 0x0015acf0 2012年5月7日月曜日 0時00分00秒 日本標準時 (lldb)
ちゃんと値は入ってる。
ちなみに、設定を「日本語」「英語(アメリカ合衆国)」「西暦」にすると…(シミュレータの2番目の例と同じ)
2012-05-06 22:23:16.946 test[3015:707] Date set to: 2012-05-06 15:00:00 +0000 2012-05-06 22:23:16.958 test[3015:707] Date with locale: Monday, May 7, 2012 12:00:00 AM Japan Standard Time
ちゃんと表示される!
なんで…?
descriptionWithLocale や NSLog 関係なしに、気付かないうちに仕込んじゃった全く別の場所のメモリ関係のバグとかが悪さしてたりするのかな?