在我的模型对象中,我正在指定一个这样的日期:
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
。不知道怎么去调试这个......
答案 0 :(得分: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"];
}
答案 1 :(得分:2)
NSDateFormatter
非{n}的原因是static
关键字在开头,static
关键字只初始化NSDateFormatter
nil一次,当您检查NSDateFormatter
时稍后在你的代码中,它永远不会是