2

私は以下のコードに困惑しました。ほとんどのデバイスで動作するように見える UIDatePicker に文字列の日付を渡しますが、一部のデバイスではアプリがクラッシュします。

ここにコードがあります

NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"HH:mm"];
NSDate *date = [dateFormat dateFromString:dateStr];
[timePicker setDate:date];
[dateFormat release];

次のように、「dateStr」変数を渡す関数があります。dateStr = @"0:0";何が問題なのかわかりません。(iphone 3.1.3) しかし、私のテスター (iPod touch 3.1.3) では動作しません

誰でもコードに問題があることがわかりますか?

どうもありがとう。何か案は?

4

3 に答える 3

1

おそらくロケールの問題。

日付フォーマッタに共通のロケールを設定してみてください。

NSLocale *usLocale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US"];
[dateFormat setLocale:usLocale];
[usLocale release];
于 2010-04-09T19:13:46.340 に答える
0

dateFormatをに設定します

[dateFormat setDateFormat:@"HH:mm"];

それでもあなたはそれをdateStrとして渡しますdateStr = @"0:0";か?

dateStr = @"00:00";実際にフォーマッターのフォーマットに準拠するものを渡してみてください

于 2010-04-14T07:12:53.417 に答える
0

すべての 12 時間制ロケールでは、午前 0 時を 12:00 と定義しています。24 時間 (ミリタリー タイムとも呼ばれます) 時計では、00:00 が午前 0 時と定義されています。

あなたの例では、UIDatePicker で潜在的に不明な形式の文字列を「強制」しています。

ロケール設定を確認し、文字列の時刻表現、en_US、da_DK などに対応するロケールを常に指定してください。

于 2010-04-15T09:09:11.113 に答える