iOS应用中的iOS 8
问题描述:
返回回历历年我有一个iOS应用和它的iOS高达7做工精细iOS应用中的iOS 8
我生成列表车型年从1970年到当前年份。继承人的代码
NSDateComponents *components = [[NSCalendar currentCalendar] components:NSDayCalendarUnit | NSMonthCalendarUnit | NSYearCalendarUnit fromDate:[NSDate date]];
NSInteger currentYear = [components year];
DLog(@"current year = %ld", (long)currentYear)
for (NSInteger yearStart = (currentYear + 1); yearStart >= kHJVehicleStartingModelYear ; yearStart--) {
[self.carModels addObject:[NSString stringWithFormat:@"%ld", (long)yearStart]];
}
的问题是,在iOS的8运行取决于区域设置,当它返回回历的当年。例如它将返回1435而不是2014.并且循环不执行以生成模型列表。
如何在iOS 8中获取公历当年?
答
您刚才创建的NSCalendar
实例与NSGregorianCalendar
类型:
NSCalendar *gregorianCalendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
NSDateComponents *components = [gregorianCalendar components:NSDayCalendarUnit | NSMonthCalendarUnit | NSYearCalendarUnit fromDate:[NSDate date]];
我想高达IOS版本7默认[NSCalendar currentCalendar]将返回NSGregorianCalendar。但是从iOS 8开始,它取决于语言环境设置。 – 2014-08-27 14:31:47
否['NSCalendar currentCalendar]'将在iOS 7及更低版本的区域设置中返回所选日历。 – rckoenes 2014-08-27 15:11:30