MKDirections
Оператор импорта
Swift
import MapKit
Objective C
@import MapKit;
Доступность
Доступный в iOS 7.0 и позже.
MKDirections объект предоставляет Вам основанные на маршруте данные направлений от серверов Apple. Можно использовать экземпляры этого класса для получения информации времени перемещения или ведущих или идущих направлений на основе данных в MKDirectionsRequest возразите, что Вы обеспечиваете. Объект направлений передает Ваш запрос серверам Apple и возвращает запрошенную информацию блоку, который Вы обеспечиваете.
Каждый объект направлений обрабатывает единственный запрос для направлений, несмотря на то, что можно отменить и перезапустить тот запрос по мере необходимости. Можно создать многократные экземпляры этого класса и обработать различные запросы маршрута одновременно, но необходимо выполнить запросы только, когда Вы планируете представить соответствующую маршрутную информацию пользователю. Приложения могут получить a MKErrorLoadingThrottled ошибка, если слишком много запросов были выполнены от текущего устройства в слишком коротком периоде времени.
-
init (запрос:) - initWithRequest:Определяемый инициализаторИнициализирует и возвращает объект направлений использование указанного запроса.
Объявление
Swift
init!(requestrequest: MKDirectionsRequest!)Objective C
- (instancetype)initWithRequest:(MKDirectionsRequest *)requestПараметры
requestОбъект запроса, содержащий запуск и конечные точки маршрута. Этот параметр не должен быть
nil.Возвращаемое значение
Инициализированный объект направлений.
Обсуждение
После инициализации Вашего объекта направлений необходимо вызвать
calculateDirectionsWithCompletionHandler:илиcalculateETAWithCompletionHandler:метод для выполнения запроса.Оператор импорта
Objective C
@import MapKit;Swift
import MapKitДоступность
Доступный в iOS 7.0 и позже.
-
Начинает вычислять требуемую маршрутную информацию асинхронно.
Объявление
Swift
func calculateDirectionsWithCompletionHandler(_completionHandler: MKDirectionsHandler!)Objective C
- (void)calculateDirectionsWithCompletionHandler:(MKDirectionsHandler)completionHandlerПараметры
completionHandlerБлок для выполнения, когда направления готовы или когда происходит ошибка. Этот параметр не должен быть
nil.Обсуждение
Этот метод подает заявку для направлений и вызывает Ваш блок обработчика завершения с результатами. Ваш обработчик завершения выполняется на основном потоке Вашего приложения. Реализация Вашего обработчика должна проверить на ошибки и затем включить данные ответа как надлежащие.
При вызове этого метода, в то время как предыдущий запрос в процессе, это вызовы метода обработчик завершения с ошибкой. Можно определить, в процессе ли запрос путем проверки значения
calculatingсвойство. Можно также отменить запрос по мере необходимости.Оператор импорта
Objective C
@import MapKit;Swift
import MapKitДоступность
Доступный в iOS 7.0 и позже.
См. также
-
Начинает вычислять запрошенную информацию времени перемещения асинхронно.
Объявление
Swift
func calculateETAWithCompletionHandler(_completionHandler: MKETAHandler!)Objective C
- (void)calculateETAWithCompletionHandler:(MKETAHandler)completionHandlerПараметры
completionHandlerБлок для выполнения, когда оценка времени перемещения готова или когда происходит ошибка. Этот параметр не должен быть
nil.Обсуждение
Этот метод подает заявку для оценки времени перемещения и вызывает Ваш блок обработчика завершения с результатами. Оценки времени перемещения занимают намного меньше времени для генерации, чем направления, так используйте этот метод в ситуациях, где Вы хотите оценку времени только. Ваш обработчик завершения выполняется на основном потоке Вашего приложения. Реализация Вашего обработчика должна проверить на ошибки и затем включить данные ответа как надлежащие.
При вызове этого метода, в то время как предыдущий запрос в процессе, это вызовы метода обработчик завершения с ошибкой. Можно определить, в процессе ли запрос путем проверки значения
calculatingсвойство. Можно также отменить запрос по мере необходимости.Оператор импорта
Objective C
@import MapKit;Swift
import MapKitДоступность
Доступный в iOS 7.0 и позже.
-
Отменяет незаконченный запрос.
Объявление
Swift
func cancel()Objective C
- (void)cancelОбсуждение
После отмены запроса можно вызвать
calculateDirectionsWithCompletionHandler:метод снова (если Вы хотите) перезапускать процесс запроса.Оператор импорта
Objective C
@import MapKit;Swift
import MapKitДоступность
Доступный в iOS 7.0 и позже.
-
calculatingСвойствоБулево значение, указывающее, является ли запрос в настоящее время в процессе. (только для чтения)
Объявление
Swift
var calculating: Bool { get }Objective C
@property(nonatomic, readonly, getter=isCalculating) BOOL calculatingОператор импорта
Objective C
@import MapKit;Swift
import MapKitДоступность
Доступный в iOS 7.0 и позже.
Типы данных
-
Блок для использования для обработки требуемой маршрутной информации.
Объявление
Swift
typealias MKDirectionsHandler = (MKDirectionsResponse!, NSError!) -> VoidObjective C
typedef void (^MKDirectionsHandler)(MKDirectionsResponse *response, NSError *error);Обсуждение
Этот блок берет два параметра:
responseпараметр содержит маршрутную информацию для запроса. Если ошибка произошла, или никакой маршрут не мог бы быть определен, этот параметрnil.errorпараметр содержит информацию о любых произошедших ошибках. Если никакие ошибки не произошли, этот параметрnil.
Реализация Вашего блока должна проверить на значение в
errorпараметр и, если тот параметрnil, включите маршрутную информацию, предоставленную вresponseпараметр.Оператор импорта
Objective C
@import MapKit;Swift
import MapKitДоступность
Доступный в iOS 7.0 и позже.
-
Блок для использования для обработки информации о времени перемещения.
Объявление
Swift
typealias MKETAHandler = (MKETAResponse!, NSError!) -> VoidObjective C
typedef void (^MKETAHandler)(MKETAResponse *response, NSError *error);Обсуждение
Этот блок берет два параметра:
responseпараметр содержит ответ времени передвижения. Если ошибка произошла, или никакое время передвижения не могло бы быть определено, этот параметрnil.errorпараметр содержит информацию о любых произошедших ошибках. Если никакие ошибки не произошли, этот параметрnil.
Реализация Вашего блока должна проверить на значение в
errorпараметр и, если тот параметрnil, включите информацию времени перемещения, предоставленную вresponseпараметр.Оператор импорта
Objective C
@import MapKit;Swift
import MapKitДоступность
Доступный в iOS 7.0 и позже.
