при использовании google-направлений Api и запроса данных в json, получающих нулевые данные

Я новичок в программировании и разработке ios с быстрым. Я пытаюсь сопоставить маршрут между двумя точками и столкнулся с этой проблемой.

func getDirections(origin: String!, destination: String!, waypoints: Array<String>!, travelMode: AnyObject!, completionHandler: ((status: String, success: Bool) -> Void)) { if let originLocation = origin { if let destinationLocation = destination { var directionsURLString = baseURLDirections + "origin=" + originLocation + "&destination=" + destinationLocation directionsURLString = directionsURLString.stringByAddingPercentEscapesUsingEncoding(NSUTF8StringEncoding)! let directionsURL = NSURL(string: directionsURLString) dispatch_async(dispatch_get_main_queue(), { () -> Void in let directionsData = NSData(contentsOfURL: directionsURL!) println(directionsData) var error: NSError? let dictionary: Dictionary<NSObject, AnyObject> = NSJSONSerialization.JSONObjectWithData(directionsData!, options: NSJSONReadingOptions.MutableContainers, error: &error) as! Dictionary<NSObject, AnyObject> 

Я получаю сообщение об ошибке:

фатальная ошибка: неожиданно найден nil при развертывании необязательного значения

Я попробовал распечатать данные, которые я получал, и он вышел ноль

 let baseURLDirections = "https://maps.googleapis.com/maps/api/directios/json?" 

Вы не API key в URL-адресе вашего запроса.

Вы можете использовать NSURLSession для выполнения запроса API Directions. Когда вы возвращаете данные из ответа API, вы можете использовать NSJSONSerialization.JSONObjectWithData() для анализа даты JSON.

  func directionAPITest() { let directionURL = "https://maps.googleapis.com/maps/api/directions/json?origin=Toronto&destination=Montreal&key=YOUR_API_KEY" let request = NSURLRequest(URL: NSURL(string:directionURL)!) let session = NSURLSession.sharedSession() session.dataTaskWithRequest(request, completionHandler: {(data: NSData!, response: NSURLResponse!, error: NSError!) in if error == nil { let object = NSJSONSerialization.JSONObjectWithData(data, options: nil, error: nil) as! NSDictionary println(object) let routes = object["routes"] as! [NSDictionary] for route in routes { println(route["summary"]) } dispatch_async(dispatch_get_main_queue()) { //update your UI here } } else { println("Direction API error") } }).resume() } 

Если вам нужно огласить свой mapView или UITableView вы можете сделать это внутри закрытия dispatch_async(dispatch_get_main_queue()) .

Вы не включили Serverkey в запрошенный URL не API-интерфейса … Создайте один ключ сервера и подождите около 10 минут для активации.

  • Ошибка IOS Swift по активам
  • Swift Plist Чтение и инициализация массивов как объектов для ключа
  • Создайте UIView только с одной диагональной стороной
  • Как сделать трансляции на CALayer?
  • Создайте словарь как необязательное свойство с помощью Swift
  • Метод делегата willDisplayCell Swift
  • Импорт XCTest в динамическую структуру
  • Как играть в аудиофайл AMR?
  • Xcode 6: как установить индивидуальный идентификатор пакета?
  • Общий XOR Swap в Swift
  • Интервал между UITableViews, например Settings Application
  • Interesting Posts

    NSFetchedResultsController вызывает делегат контроллераDidChangeContent несколько раз с устаревшими результатами?

    Контроллер вида Xcode 6 показывает пустой экран с автозапуском

    MFMailComposeViewController canSendMail возвращает YES, но не отправляет почту в iOS

    Разбор CSV-файла в Swift

    Ссылка UITextView не кликабельная iOS 8

    UIStatusBarStyleBlackTranslucent недоступен на этом устройстве

    Можете ли вы использовать NSManagedObject за пределами его выполнения?

    Запуск веб-сервера на устройстве iOS

    OpenCV.Framework не компилируется для архитектуры armv7s

    Удаление iOS

    Если «Идентификатор специальных возможностей» предназначен для тестов автоматизации UI, почему он включен в локализованные ресурсы?

    Утечка памяти HTTP2 на iOS 10.2 с использованием AFNetworking 3.1.0

    Неверные представления каждый раз, когда Xcode перезапускается

    Невозможно программно создать UIViewController в Swift

    Можно ли отличать HTTP-запросы, сделанные через 3G от других запросов

    Давайте будем гением компьютера.