Xcode 4以前はNSDate initFromString
を使用していましたが、Xcode 4.2ではエラーが発生しています。だから私はNSDateFormatter dateFromString
を使って飛び乗りましたが、文字列からの日の出日と文字列からの日時を取得して呼び出す方法で問題に遭遇しました。最初の呼び出しは正常に動作しますが、2番目の呼び出しはnilを返します。私は、私は次の簡単な方法を作成し、無害な場所に別のプロジェクトにそれをダンプし、それが再現可能だったかどうかを確認することにしました。NSDateFormatter dateFromStringは、同じメソッドで最初に呼び出した後にnilを生成します
- (void)testDateFormatter
{
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat: @"yyyy-MM-dd hh:mm:ss Z"];
NSString *srDateTimeString = @"2011-11-09 07:08:00 -0800";
NSString *ssDateTimeString = @"2011-11-09 17:08:00 -0800";
NSDate *sunriseDateTime = [formatter dateFromString: srDateTimeString];
NSDate *sunsetDateTime = [formatter dateFromString: ssDateTimeString];
return;
}
最初の呼び出しは、正しい日付を返します。 2番目の呼び出しはnilを返します。私はいくつかのバリエーションを試みました(2つの別々のNSDateFormattersの作成、日付の事前初期化、日付の事前初期化と再割り当てなど)。
ここで何が起こっているのか分かりませんか?このエラーのどこにも何の参照も見つからなかったので、私はAppleにそれを提出しました(バグ#10420498)。
第2ストリングにジャック
私が編集していたとき、私はあなたがtestDateFormatterの後にa()を持っていないのを見ました。それはタイプミスのようでしたので、修正しました。ちょうどあなたが知っているので。 –
@Anders、それはタイプミスではありませんでしたが、Objective-Cは引数リストをかっこで囲んでいません。 – goldfire
明確にするために、2つの別々のNSDateFormatterオブジェクトを作成し、dateFromString _separately_と2つの別々の文字列の両方を送信しましたが、これはまだ発生していますか? – goldfire