以下 Objective-C 代码 6.2(SDK 8.2):
NSArray *the_datums = [[readCSV alloc] read_csv_from_url:fname] ;// is an array of date in Y-M-D H format read from a CSV file
NSMutableArray *les_dates = [[NSMutableArray alloc] init];
for (int i =0 ; i< the_datums.count ; i++){
NSString *str = [the_datums objectAtIndex:i] ;
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"yyyy-MM-dd H"];
NSDate *date = [dateFormatter dateFromString: str];
dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"d"];
NSString *convertedString = [dateFormatter stringFromDate:date];
[les_dates insertObject:convertedString atIndex:i];
}
如果 Iphone/Ipad 不处于 AM:PM 模式(通过 IOS 控制面板),则可以工作。但是,如果我将 idevice 切换到 AM:PM 并重新启动 APP,Xcode 会在我脸上扔石头:
* 由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“* -[__NSArrayM insertObject:atIndex:]: object cannot be nil”
当用户更改 iphone 时钟的格式时,NSdateFormatter 结果如何更改并为零?有什么解释吗?