static NSDateFormatter总是为nil

dav*_*idm 1 cocoa static nsdateformatter ios

在我的模型对象中,我正在分配这样的日期:

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"];
Run Code Online (Sandbox Code Playgroud)

我所看到的dateFormat是永远nil; 因此,dateCreated设置为nil.不知道怎么去调试这个......

tro*_*foe 10

问题只是你static dateFormatif语句中引入了另一个非变量.

试试这个:

static NSDateFormatter *dateFormat = nil;
if (nil == dateFormat) {
    dateFormat = [[NSDateFormatter alloc] init]; // NOT NSDateFormatter *dateFormat = ...
    [dateFormat setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
}
Run Code Online (Sandbox Code Playgroud)