2014-08-27 80 views
-1

返回回曆歷年我有一個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中獲取公曆當年?

回答

0

您剛纔創建的NSCalendar實例與NSGregorianCalendar類型:

NSCalendar *gregorianCalendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar]; 
NSDateComponents *components = [gregorianCalendar components:NSDayCalendarUnit | NSMonthCalendarUnit | NSYearCalendarUnit fromDate:[NSDate date]]; 
+0

我想高達IOS版本7默認[NSCalendar currentCalendar]將返回NSGregorianCalendar。但是從iOS 8開始,它取決於語言環境設置。 – 2014-08-27 14:31:47

+0

否['NSCalendar currentCalendar]'將在iOS 7及更低版本的區域設置中返回所選日曆。 – rckoenes 2014-08-27 15:11:30