Как получить название города, штата и страны с помощью PIN-кода в Swift iOS?

У меня есть пять текстовых полей, и я хочу автоматически заполнять область, город, штат и страну при вводе пин-кода.

 import UIKit
 import CoreLocation

class CreateGroupView: UIViewController,UITextFieldDelegate,CLLocationManagerDelegate
{
   //View Did Load
  override func viewDidLoad() {
      super.viewDidLoad()

    let location: String = "305621"//"yourPINCode"
    let geocoder: CLGeocoder = CLGeocoder()
    geocoder.geocodeAddressString(location,completionHandler: {(placemarks: [CLPlacemark]?, error: NSError?) -> Void in
        if ((placemarks?.count)! > 0) {
            let placemark: CLPlacemark = (placemarks?[0])!
            let country : String = placemark.country!
            let state: String = placemark.administrativeArea!
            print(country)
            print(state)
        }
    } as! CLGeocodeCompletionHandler)
  }
}

Как я могу это сделать ? Спасибо


person kishor0011    schedule 01.12.2016    source источник
comment
Я не получил его в OBJ-C, поэтому я спросил. @Анбу   -  person kishor0011    schedule 01.12.2016
comment
возьмите этот, чтобы преобразовать targetC в swift objectivec2swift.com/#/home/converter   -  person Anbu.Karthik    schedule 01.12.2016
comment
если вы не получили ответ, ответьте здесь, я открываю вопрос, вы получите ответ   -  person Anbu.Karthik    schedule 01.12.2016
comment
Нет, я не получил ответа. ошибка: - Использование необъявленного типа «MKPlacemark»   -  person kishor0011    schedule 01.12.2016
comment
Вы можете обновить вопрос один раз   -  person Anbu.Karthik    schedule 01.12.2016
comment
Я обновил, проверьте, пожалуйста. У меня не получается быстро войти. Спасибо   -  person kishor0011    schedule 01.12.2016
comment
какой из них вы не получите я не могу получить я   -  person Anbu.Karthik    schedule 01.12.2016
comment
Эта ссылка, которую вы дали na.   -  person kishor0011    schedule 01.12.2016


Ответы (1)


вы можете использовать CLGeocoder, чтобы получить подробную информацию об адресе из PIN-кода, вот пример кода.

   let location: String = "yourpincode"
let geocoder: CLGeocoder = CLGeocoder()
geocoder.geocodeAddressString(location, completionHandler: {(placemarks: [CLPlacemark]?, error: Error?) -> Void in
    if ((placemarks?.count)! > 0) {
        let placemark: CLPlacemark = (placemarks?[0])!
        let country : String = placemark.country!
        let state: String = placemark.administrativeArea!
        print(state);
    }
} as! CLGeocodeCompletionHandler)
person PlusInfosys    schedule 01.12.2016
comment
На самом деле я совершенно новичок в этом. Итак, какие фреймворки и что для этого нужно? Спасибо - person kishor0011; 01.12.2016
comment
@ kishor0011, вам нужно импортировать структуру CoreLocation. Ничего другого, это сработает. - person PlusInfosys; 01.12.2016
comment
Хорошо, позвольте мне попробовать. Спасибо - person kishor0011; 01.12.2016
comment
Эй, я получаю сообщение об ошибке: - Использование необъявленного типа «MKPlacemark» - person kishor0011; 01.12.2016
comment
грядет исключение. - person kishor0011; 01.12.2016
comment
Что-то пропущено, как делегат или? - person kishor0011; 01.12.2016
comment
нет, обработчик завершения уже есть... какой пин-код вы используете для тестирования? Что такое детали исключения? - person PlusInfosys; 01.12.2016
comment
На самом деле, если я не использую обработчик завершения, Xcode показывает ошибку. - person kishor0011; 01.12.2016
comment
Давайте продолжим обсуждение в чате. - person PlusInfosys; 01.12.2016
comment
фатальная ошибка: неожиданно найдено nil при развертывании необязательного значения для города. - person kishor0011; 01.12.2016
comment
let inlandWaterr : String = placemark.inlandWater! let SubLocalit : String = (placemark.subLocality)! print(SubLocalit) print(inlandWaterr) - person kishor0011; 01.12.2016