Вам нужно название страны, в которой физически находится устройство, когда приложение запущено?
Или вы можете обойтись системным языком, который использует устройство, например en_US или fr_CA?
Если последнее, вы можете:
NSLocale *currentUsersLocale = [NSLocale currentLocale];
NSString *currentLocaleID = [currentUsersLocale localeIdentifier];`
Тогда currentLocaleID
будет "en_US"
или "fr_CA"
или аналогичным.
В противном случае вам потребуется использовать CoreLocation и некоторую форму обратного геокодера, чтобы преобразовать ваш широту / долготу в название страны.
MKReverseGeocoder может сделать это, но в условиях обслуживания говорится, что вам нужно делать это вместе с картой Google, которая может вам не подойти. Доступно только в OS 3.0 и выше, для получения дополнительной информации ищите документацию по MKReverseGeocoder .
Я сам нуждался в этом и закончил выполнять геокодирование в PHP на нашем сервере, используя IP-адрес устройства. Это элементарно, но дало нам достаточно деталей для наших нужд.
Проверьте этот веб-сервис: http://ws.geonames.org/findNearby?lat=47.3&lng=9
Который возвращает документ XML с названиями стран и близлежащих мест с парой широта / долгота.
Этот подход основан на том, что устройство имеет активное соединение для передачи данных.