NSDateFormatter在三次使用中的第三次返回NULL

时间:2012-05-10 03:41:15

标签: xcode cocoa null nsdate nsdateformatter

好吧,这个让我感到困惑,我希望一些新观点可以让我在这里得出正确的结论......我在第三个项目上获得了一个NULL返回形式的NSDateFormatter我尝试使用它我似乎无法弄清楚为什么。这是我的代码:

NSDateFormatter *format = [[NSDateFormatter alloc] init];
NSDate *tempDate;

[format setDateFormat:@"MMM dd, yyyy"]; 
tempDate = [format dateFromString:[activePerformance performanceDate]];
[outletPerformanceDate setDateValue:tempDate];

// display performance time and set length

[format setDateFormat:@"hh:mm a"];  
tempDate = [format dateFromString:[activePerformance performanceTime]];             
[outletPerformanceTime setDateValue:tempDate];

这两项工作都正确并且符合预期。然后就是这个:

[format setDateFormat:@"MMM dd yyyy"];
tempDate = [format dateFromString:[activeFan birthday]];
[outletFansBirthday setDateValue:tempDate];

每次都向tempDate返回NULL。运行NSLogs,我们可以看到[activeFan生日]被设置为“1980年5月2日”或者放入变量的任何日期。由于这不起作用,我将其改为此测试:

[format setDateFormat:@"MMM dd yyyy"];
tempDate = [format dateFromString:@"Jan 22, 1976"];  // TESTING

每次都会返回NULL。

我想也许在这些代码行之间发生了一些事情(它们不是直接相邻,但是在同一个方法中)但是没有任何东西与NSDate,NSDateFormatter或任何这些对象变量有任何关系。只有几个NSTextFields的出口。

我完全不知所措。任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:1)

您的格式字符串必须与您在dateFromString:方法中提供的字符串相匹配。在上一个版本中,您的格式字符串中没有逗号,但您在测试字符串中(可能在[activeFan生日]中)。