在我的模型对象中,我分配了一个这样的日期:
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
"。
问题很简单,您在if
语句中引入了另一个非static
dateFormat
变量。
试试这个:
static NSDateFormatter *dateFormat = nil;
if (nil == dateFormat) {
dateFormat = [[NSDateFormatter alloc] init]; // NOT NSDateFormatter *dateFormat = ...
[dateFormat setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
}
NSDateFormatter
不为nil的原因是static
关键字在开始时,static
关键字初始化NSDateFormatter
nil只有一次,当您稍后在代码中检查NSDateFormatter
时,它永远不会为nil