【发布时间】:2015-12-16 09:26:59
【问题描述】:
我的一个应用在刚刚升级到 iOS9 的设备上运行后出现问题(应用的目标是 8.1)。
该应用在 iOS9 之前运行良好,但是,仅在设备上升级到 iOS9 后,出现以下问题。
下面名为“anObsDate”的变量现在返回空值。我不知道为什么。似乎主机设备上 iOS9 的独立升级触发了此问题的发生。
NSDate *anObsDate = [[self bomDateFormatter] dateFromString:[anObs timeStamp]];
当我使用以下调试运行应用程序时,我们有以下输出:
NSLog(@"Timestamp %@", [anObs timeStamp]);
NSLog(@"Formatter %@", [self bomDateFormatter]);
NSDate *anObsDate = [[self bomDateFormatter] dateFromString:[anObs timeStamp]];
Timestamp 2015-09-17 00:01:10
Formatter <NSDateFormatter: 0x7fe7abc653c0>
我将日期格式化程序设置如下:
NSLocale *locale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_AU"];
NSDateFormatter *countDownFormatter = [[NSDateFormatter alloc] init];
[countDownFormatter setLocale:locale];
[countDownFormatter setTimeZone:[NSTimeZone timeZoneWithName:@"Australia/Melbourne"]];
[countDownFormatter setDateFormat:@"yyyy'-'MM'-'dd'T'HH':'mm':'ss"];
return countDownFormatter;
再次说明这一点,如果我在 iOS9 之前的设备上运行我的应用程序,一切正常,并且 dateFromString 返回一个 NSDate。升级到iOS9后dateFromString返回null。
有什么建议吗?
谢谢。
【问题讨论】:
标签: ios objective-c cocoa-touch ios9