我有一个简单的方法,可以从像“NOV 2017”这样的字符串中确定NSDate。当我逐步执行该方法时,actualDate具有正确的值,但nil被传递给调用方法。
下面的代码一直工作到最近,我正在使用针对iOS 10/11的Xcode 9.0。
这是调用方法
NSDate *eventDate = [DateClass dateFromMonthYearString:@"NOV 2017"];
方法定义
+(NSDate*)dateFromMonthYearString:(NSString*)monthYearString
{
NSDateFormatter *formatter = [self cachedFormatter];
[formatter setDateFormat:MONTH_YEAR_DATE_FORMAT];
NSDate* actualDate = [formatter dateFromString:monthYearString];
return actualDate;
}
+(NSDateFormatter*) cachedFormatter
{
if (cachedDateFormatter == nil)
{
cachedDateFormatter = [[NSDateFormatter alloc] init];
cachedDateFormatter.locale = [NSLocale currentAppLocale];
}
return cachedDateFormatter;
}
MONTH_YEAR_DATE_FORMAT定义为......
NSString * const MONTH_YEAR_DATE_FORMAT = @"MMM yyyy";
当我在方法定义中打印日期对象时,Xcode会正确打印日期。当我试图在方法定义之外'po'时,我只是得到类似的东西
(lldb) po eventDate
0x000000012eb048e0
有什么想法吗?
答案 0 :(得分:0)
因此,当我通过NSLog将值打印到控制台时,它会打印正确的值。看起来它只是变量显示和'po'命令在X9.1中无法正常工作?