引
項目需要一個選擇國家的列表,想想要自己列出所有國家就夠麻煩了,還要適配手機語言就更加是個不可能的任務,后來發(fā)現(xiàn)蘋果是給出了直接的API來做的,很方便,我加上了大部分國家的國旗,這個是系統(tǒng)沒給的,放出來方便大家。
image.png
實現(xiàn)
列表怎么實現(xiàn)就不說了,直接說怎么獲取國家數(shù)組。
NSLocale *locale = [NSLocale currentLocale];
NSArray *countryArray = [NSLocale ISOCountryCodes];
for (NSString *countryCode in countryArray) {
if ([countryCode isEqualToString:@"CN"]) {
[self.countryCodeArray insertObject:countryCode atIndex:0];
NSString *displayNameString = [locale displayNameForKey:NSLocaleCountryCode value:countryCode];
[self.countryArray insertObject:displayNameString atIndex:0];
continue;
}
[self.countryCodeArray addObject:countryCode];
NSString *displayNameString = [locale displayNameForKey:NSLocaleCountryCode value:countryCode];
[self.countryArray addObject:displayNameString];
}
如上面代碼,可以直接獲取到各個國家的代碼,這里會涉及到一個很有意思的地方,如果直接查看 self.countryCodeArray 這個數(shù)組,會發(fā)現(xiàn)都只是國家代號,但如果去獲取他的值,會發(fā)現(xiàn)自動變成當前設備語言下的國家名了。
上面代碼中 self.countryCodeArray 這個數(shù)組是用來存放國家名的,self.countryCodeArray 這個數(shù)組是存放國家代碼本身的,這是因為我的國旗圖片名都是國家代碼,所以需要用這個代碼來獲取圖片從而在列表中顯示圖片。
代碼中遇到代號為“CN”的表示是中國,我將它放在列表第一個顯示方便選擇。
其余的關(guān)于列表的代碼就很常見啦,不會的可以在工程中查看。
結(jié)
希望能幫助到需要的人,這個知識點知道了就很方便,不知道就很麻煩。