MKDirections
Оператор импорта
Swift
import MapKit
Objective C
@import MapKit;
Доступность
Доступный в iOS 7.0 и позже.
MKDirections
объект предоставляет Вам основанные на маршруте данные направлений от серверов Apple. Можно использовать экземпляры этого класса для получения информации времени перемещения или ведущих или идущих направлений на основе данных в MKDirectionsRequest
возразите, что Вы обеспечиваете. Объект направлений передает Ваш запрос серверам Apple и возвращает запрошенную информацию блоку, который Вы обеспечиваете.
Каждый объект направлений обрабатывает единственный запрос для направлений, несмотря на то, что можно отменить и перезапустить тот запрос по мере необходимости. Можно создать многократные экземпляры этого класса и обработать различные запросы маршрута одновременно, но необходимо выполнить запросы только, когда Вы планируете представить соответствующую маршрутную информацию пользователю. Приложения могут получить a MKErrorLoadingThrottled
ошибка, если слишком много запросов были выполнены от текущего устройства в слишком коротком периоде времени.
-
init (запрос:) - initWithRequest:
Определяемый инициализаторИнициализирует и возвращает объект направлений использование указанного запроса.
Объявление
Swift
init!(request
request
: 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!) -> Void
Objective 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!) -> Void
Objective 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 и позже.