Ios 是否将设备语言设置为区域设置?

Ios 是否将设备语言设置为区域设置?,ios,localization,nsdate,locale,nsdateformatter,Ios,Localization,Nsdate,Locale,Nsdateformatter,在我的一个本地化应用程序中,西班牙语是默认语言。但是,用户可以将英语设置为默认语言,并将其区域设置为西班牙 问题是,在我的应用程序中,我使用以下代码: int day = (60*60*24); NSDate *nextNextDay = [[NSDate alloc] initWithTimeIntervalSinceNow:(day*2)]; NSString *someString = [[dateFormatter stringFromDate:nextNextDay] capitali

在我的一个本地化应用程序中,西班牙语是默认语言。但是,用户可以将英语设置为默认语言,并将其区域设置为西班牙

问题是,在我的应用程序中,我使用以下代码:

int day = (60*60*24);
NSDate *nextNextDay = [[NSDate alloc] initWithTimeIntervalSinceNow:(day*2)];
NSString *someString = [[dateFormatter stringFromDate:nextNextDay] capitalizedString];
NSLog(@"The day: %@", someString);
结果是默认区域设置中的日期名称,在本场景中为西班牙语。所以,我不会选择星期一,而是选择Lunes。当然,当应用程序的其余部分是英语时,这是非常难看的


如果不硬编码任何区域设置,如何解决此问题?

为什么不硬编码区域设置

您可以这样做:

NSString *userLocale = [[NSLocale currentLocale]localeIdentifier];
NSString *userLanguage = [userLocale substringToIndex:2];
if([userLanguage isEqualToString:@"en"]){

    //English

}
if([userLanguage isEqualToString:@"es"]){

    //Spanish

}

希望这有所帮助

尽管它的硬编码是可用的。