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

NSDateFormatter不是nil 的原因是static开头的关键字,static关键字只初始化NSDateFormatternil 一次,当你NSDateFormatter在代码中检查后面的时候,它永远不会是 nil

于 2013-03-04T14:37:21.753 回答