1

モデルオブジェクトでは、次のような日付を割り当てています。

static NSDateFormatter *dateFormat = nil;
if (nil == dateFormat) {
    NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
    [dateFormat setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
}

dateCreated = [dateFormat dateFromString:@"2013-03-04 09:16:41"];

私が見ているのは、それdateFormatが常にあるということですnil。したがって、dateCreatedに設定されnilます。これをデバッグする方法がわからない...

4

2 に答える 2

10

問題は、ステートメントstatic dateFormat内に別の非変数を導入したことです。if

これを試して:

static NSDateFormatter *dateFormat = nil;
if (nil == dateFormat) {
    dateFormat = [[NSDateFormatter alloc] init]; // NOT NSDateFormatter *dateFormat = ...
    [dateFormat setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
}
于 2013-03-04T14:44:05.187 に答える
2

NSDateFormatternillでない理由はstatic、最初のキーワードです。キーワードstaticはnilを1回だけ初期化し、コードNSDateFormatterの後半をチェックすると、 nilになることはありません。NSDateFormatter

于 2013-03-04T14:37:21.753 に答える