我想我在iOS捷克通讯录中发现了一个错误。我已经使用ABPeoplePickerNavigationController创建了一个在我的应用程序中选择的捷克联系人(与捷克共和国所在的国家)。

ABPeoplePickerNavigationController返回给我的地址日志是:

"Country" : "Czech Republic"
"Street" : "A street"
"CountryCode" : "cs"
"City" : "A city"
"ZIP" : "12345"


因此国家/地区代码为CS。但是当我尝试检索相应的名称时,

NSString *countryCode = [address objectForKey:(NSString *)kABPersonAddressCountryCodeKey];
if (countryCode != nil) {
    NSString *countryName = [[NSLocale currentLocale] displayNameForKey:NSLocaleCountryCode value:countryCode];
    name = [[applicationDelegate dataManager] objectForEntityForName:@"Name" withValue:countryName forKey:@"name"];
}


name给我:“塞尔维亚和黑山”!

根据http://countrycode.org/,捷克国家代码是CK,根据http://xml.coverpages.org/country3166.html,CS是捷克斯洛伐克的,但是“不再存在”

在苹果公司,我该如何说呢?

最佳答案

您正在混合国家代码(ISO 3166-X)和语言代码(ISO 639-X)。
根据ISO 639-1的捷克语语言代码为“ CS”。

http://en.wikipedia.org/wiki/List_of_ISO_639-2_codes

注意:
很久以前,它也曾经是ISO 3166-1中以前的“捷克斯洛伐克”的国家/地区代码,但是由于政治变化,已经多次更改和重新分配(例如,塞尔维亚和黑山,现在改为“ YU”) 。

10-08 12:13