Just My Life & My Work

想要做國際級的App,然後讓使用者註冊使用,在填寫基本資料的過程中,會遇到選擇國碼與國名 (Country Code and Country Name)的欄位,此時要怎麼取得相關資訊?原來就內建在iOS SDK中!只要取得ISO Country Code,就能轉換成Country Name囉。

國碼與國名 (Country Code and Country Name).png

這世界上的國家還真是多呀~想起這世界「分久必合,合久必分」:P~

程式碼其實很簡單~

/**
 Theme: Country Code and Country Name
 IDE: Xcode 8
 Language: Objective C
 Date: 106/08/21
 Author: HappyMan
 Blog: https://cg2010studio.com/
 */

- (void)viewDidLoad {
    [super viewDidLoad];

    NSLocale *locale = [NSLocale currentLocale];
    NSArray *countryArray = [NSLocale ISOCountryCodes];

    NSMutableArray *sortedCountryArray = [[NSMutableArray alloc] init];

    for (NSString *countryCode in countryArray) {

        NSString *displayNameString = [locale displayNameForKey:NSLocaleCountryCode value:countryCode];
        [sortedCountryArray addObject:displayNameString];

    }

    [sortedCountryArray sortUsingSelector:@selector(localizedCompare:)];
}

國家代碼countryArray列印如下:

<__NSArrayI 0x102065c00>(
AC,
AD,
AE,
AF,
AG,
AI,
AL,
AM,
AO,
AQ,
AR,
AS,
AT,
AU,
AW,
AX,
AZ,
BA,
BB,
BD,
BE,
BF,
BG,
BH,
BI,
BJ,
BL,
BM,
BN,
BO,
BQ,
BR,
BS,
BT,
BV,
BW,
BY,
BZ,
CA,
CC,
CD,
CF,
CG,
CH,
CI,
CK,
CL,
CM,
CN,
CO,
CP,
CR,
CU,
CV,
CW,
CX,
CY,
CZ,
DE,
DG,
DJ,
DK,
DM,
DO,
DZ,
EA,
EC,
EE,
EG,
EH,
ER,
ES,
ET,
FI,
FJ,
FK,
FM,
FO,
FR,
GA,
GB,
GD,
GE,
GF,
GG,
GH,
GI,
GL,
GM,
GN,
GP,
GQ,
GR,
GS,
GT,
GU,
GW,
GY,
HK,
HM,
HN,
HR,
HT,
HU,
IC,
ID,
IE,
IL,
IM,
IN,
IO,
IQ,
IR,
IS,
IT,
JE,
JM,
JO,
JP,
KE,
KG,
KH,
KI,
KM,
KN,
KP,
KR,
KW,
KY,
KZ,
LA,
LB,
LC,
LI,
LK,
LR,
LS,
LT,
LU,
LV,
LY,
MA,
MC,
MD,
ME,
MF,
MG,
MH,
MK,
ML,
MM,
MN,
MO,
MP,
MQ,
MR,
MS,
MT,
MU,
MV,
MW,
MX,
MY,
MZ,
NA,
NC,
NE,
NF,
NG,
NI,
NL,
NO,
NP,
NR,
NU,
NZ,
OM,
PA,
PE,
PF,
PG,
PH,
PK,
PL,
PM,
PN,
PR,
PS,
PT,
PW,
PY,
QA,
RE,
RO,
RS,
RU,
RW,
SA,
SB,
SC,
SD,
SE,
SG,
SH,
SI,
SJ,
SK,
SL,
SM,
SN,
SO,
SR,
SS,
ST,
SV,
SX,
SY,
SZ,
TA,
TC,
TD,
TF,
TG,
TH,
TJ,
TK,
TL,
TM,
TN,
TO,
TR,
TT,
TV,
TW,
TZ,
UA,
UG,
UM,
US,
UY,
UZ,
VA,
VC,
VE,
VG,
VI,
VN,
VU,
WF,
WS,
XK,
YE,
YT,
ZA,
ZM,
ZW
)

轉換後的國家名稱列表,sortedCountryArray列印如下:

<__NSArrayM 0x17004a350>(
千里達及托巴哥,
土耳其,
土克斯及開科斯群島,
土庫曼,
不丹,
中非共和國,
中華人民共和國,
丹麥,
厄瓜多,
厄利垂亞,
巴布亞紐幾內亞,
巴西,
巴貝多,
巴拉圭,
巴林,
巴哈馬,
巴拿馬,
巴勒斯坦自治區,
巴基斯坦,
日本,
比利時,
牙買加,
以色列,
加那利群島,
加拿大,
加彭,
北馬里亞納群島,
北韓,
卡達,
古巴,
台灣,
史瓦濟蘭,
尼日,
尼加拉瓜,
尼泊爾,
布吉納法索,
布威島,
瓜地洛普,
瓜地馬拉,
瓦利斯和富圖納群島,
甘比亞,
白俄羅斯,
皮特肯群島,
立陶宛,
伊拉克,
伊朗,
休達與梅利利亞,
冰島,
列支敦斯登,
匈牙利,
印尼,
印度,
吉布地,
吉里巴斯,
吉爾吉斯,
吐瓦魯,
多米尼克,
多明尼加共和國,
多哥,
安圭拉,
安地卡及巴布達,
安哥拉,
安道爾,
托克勞群島,
百慕達,
衣索比亞,
西班牙,
西撒哈拉,
克里派頓島,
克羅埃西亞,
冷岸及央麥恩群島,
利比亞,
宏都拉斯,
希臘,
汶萊,
沙烏地阿拉伯,
貝里斯,
貝南,
赤道幾內亞,
辛巴威,
亞美尼亞,
亞塞拜然,
坦尚尼亞,
奈及利亞,
委內瑞拉,
孟加拉,
尚比亞,
帛琉,
拉脫維亞,
東加,
東帝汶,
法國,
法羅群島,
法屬圭亞那,
法屬南方屬地,
法屬玻里尼西亞,
法屬聖馬丁,
波士尼亞與赫塞哥維納,
波札那,
波多黎各,
波蘭,
直布羅陀,
肯亞,
芬蘭,
阿拉伯聯合大公國,
阿根廷,
阿曼王國,
阿富汗,
阿森松島,
阿爾及利亞,
阿爾巴尼亞,
俄羅斯,
保加利亞,
南非,
南喬治亞與南三明治群島,
南極洲,
南韓,
南蘇丹,
哈薩克,
查德,
柬埔寨,
玻利維亞,
科威特,
科科斯(基林)群島,
科索沃,
突尼西亞,
約旦,
美國,
美國本土外小島嶼,
美屬維京群島,
美屬薩摩亞,
英國,
英屬印度洋領地,
英屬維京群島,
茅利塔尼亞,
迦納,
迪亞哥加西亞島,
香港(中國),
剛果(布拉薩),
剛果(金夏沙),
哥倫比亞,
哥斯大黎加,
埃及,
庫克群島,
庫拉索,
挪威,
根西島,
格陵蘭,
格瑞那達,
泰國,
海地,
烏干達,
烏克蘭,
烏拉圭,
烏茲別克,
特里斯坦達庫尼亞群島,
留尼旺,
秘魯,
納米比亞,
紐西蘭,
紐埃島,
索馬利亞,
索羅門群島,
馬丁尼克島,
馬利,
馬來西亞,
馬其頓,
馬拉威,
馬約特,
馬紹爾群島,
馬達加斯加,
馬爾他,
馬爾地夫,
密克羅尼西亞群島,
捷克共和國,
敘利亞,
曼島,
梵蒂岡,
荷屬阿魯巴,
荷屬聖馬丁,
荷蘭,
荷蘭加勒比區,
莫三比克,
喀麥隆,
喬治亞共和國,
幾內亞,
幾內亞比索,
斐濟,
斯里蘭卡,
斯洛伐克,
斯洛維尼亞,
智利,
菲律賓,
象牙海岸,
越南,
開曼群島,
塔吉克,
塞內加爾,
塞席爾,
塞爾維亞,
奧地利,
奧蘭群島,
愛沙尼亞,
愛爾蘭,
新加坡,
新喀里多尼亞,
獅子山共和國,
瑞士,
瑞典,
萬那杜,
義大利,
聖巴瑟米,
聖文森及格瑞那丁,
聖皮埃爾和密克隆群島,
聖多美普林西比,
聖克里斯多福及尼維斯,
聖馬利諾,
聖赫勒拿島,
聖誕島,
聖露西亞,
葉門,
葛摩,
葡萄牙,
福克蘭群島,
維德角,
蒙古,
蒙哲臘,
蒙特內哥羅,
蒲隆地,
蓋亞那,
赫德島和麥克唐納群島,
寮國,
德國,
摩洛哥,
摩納哥,
摩爾多瓦,
模里西斯,
緬甸,
黎巴嫩,
墨西哥,
澤西島,
澳門(中國),
澳洲,
盧安達,
盧森堡,
諾福克島,
諾魯,
賴比瑞亞,
賴索托,
賽普勒斯,
薩爾瓦多,
薩摩亞,
羅馬尼亞,
關島,
蘇丹,
蘇利南
)

聽說Android取得有問題,不過阿遠同學他的手機是大陸華為,廠牌太多好難搞XD~

參考:Iphone, Obtaining a List of countries in an NSArray、WiKi – ISO 3166-1

隨意留個言吧:)~

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com 標誌

您的留言將使用 WordPress.com 帳號。 登出 /  變更 )

Facebook照片

您的留言將使用 Facebook 帳號。 登出 /  變更 )

連結到 %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.

標籤雲

%d 位部落客按了讚: