Делегирайте ииницииране на стандартни актуализации CLLocationManager, клас (клас CLLocationManager),

Клас CLLocationManager

Делегиране и иницииране на стандартни актуализации

- startUpdatingLocation
- стопUpdatingLocation
-заявка за местоположение
поставя на пауза актуализациите на местоположението автоматично
позволява BackgroundLocationUpdates
разстояние Филтър
желана точност
activityType

Делегираният обект за получаване на събития за актуализиране.

@property(assign, nonatomic, nullable) id делегат

Съображение:

- startUpdatingLocation

Започва да генерира актуализации, които отчитат текущото местоположение на потребителя.

Съображение:

Извикването на този метод няколко пъти подред не генерира автоматично нови актуализации на местоположението.

Ако стартирате тази услуга и вашето приложение е поставено на пауза, системата спира да доставя събития на вашето приложение, докато не бъде стартирано отново (на преден план или на заден план). Ако вашето приложение бъде прекратено, доставката на нови събития за местоположение спира за постоянно. По този начин, ако вашето приложение трябва да получава събития за местоположение във фонов режим, то трябва да включва ключа UIBackgroundModes (със стойност location ) в своя файл Info.plist.

Освен това вашият делегиран обект, който имплементира метода locationManager:didUpdateLocations:, трябва също да имплементира метода locationManager:didFailWithError:, за да може да реагира на възможни грешки.

- стопUpdatingLocation

Спира генерирането на актуализации на местоположението.

Съображение:

-заявка за местоположение

Поискайте еднократна доставка на текущото местоположение на потребителя.

Съображение:

Използвайте този метод, ако искате да получите само текущото местоположение на потребителя. Товаметодът стартира услугата за местоположение достатъчно дълго, за да върне резултат или да съобщи за грешка, и след това я спира отново. Извикването на метода startUpdatingLocation или allowDeferredLocationUpdatesUntilTraveled:timeout: анулира всяка чакаща заявка, използваща този метод. Извикването на този метод, докато услугите за местоположение вече работят, не води до нищо. За да отмените чакаща заявка, извикайте метода stopUpdatingLocation.

Ако отнеме твърде много време, за да се получи необходимата точност, мениджърът на местоположения предоставя по-малко точна стойност на местоположението вместо съобщение за грешка.

Когато използвате този метод, асоциираният делегат трябва да имплементира методите locationManager:didUpdateLocations: и locationManager:didFailWithError:. Неспазването на това е грешка на програмиста.

поставя на пауза актуализациите на местоположението автоматично

Булева стойност, показваща, че мениджърът на местоположението може да постави на пауза местоположението.

@property(assign, nonatomic) BOOL пауза LocationUpdatesAutomatically

Съображение:

Стойността по подразбиране е ДА.

позволява BackgroundLocationUpdates

Булева стойност, показваща дали приложението иска да получава актуализации на местоположението, когато е поставено на пауза.

@property(assign, nonatomic) BOOL позволява актуализации на BackgroundLocationUpdates

Съображение:

Стойността по подразбиране на това свойство е NO. Задаването на стойността на YES, но пропускането на ключа UIBackgroundModes и стойността на местоположението във файла Info.plist на вашето приложение е грешка на програмиста.

разстояние Филтър

Минимално разстояние (в метри), на което устройството трябва да се движи хоризонтално, за да генерира съобщение за актуализиранеместоположения.

@property(assign, nonatomic) CLLocationDistance distanceFilter

Съображение:

Това свойство се използва само във връзка със стандартната услуга за местоположение и не се използва при наблюдение на значителни промени в местоположението.

желана точност

Точност на данните за местоположението.

@property(assign, nonatomic) CLLocationAccuracy желателна точност

Съображение:

Трябва да присвоите стойност на това свойство, която отговаря на вашия случай на употреба. Например, ако искате само текущото местоположение в рамките на километър, бихте посочили kCLLocationAccuracyKilometer, а не kCLLocationAccuracyBestForNavigation. Локализирането с по-голяма точност изисква повече време и енергия.

Когато изисквате данни за местоположение с висока точност, оригиналното събитие, доставено от услугата за местоположение, може да няма исканата от вас точност. Услугата за местоположение предоставя първоначалното събитие възможно най-бързо. След това продължава да намира с точността, която сте поискали, и доставя допълнителни събития, ако е необходимо, когато тези данни са налични.

За iOS и OS X стойността по подразбиране на това свойство е kCLLocationAccuracyBest. За watchOS, по подразбиране е kCLLocationAccuracyHundredMeters.

Това свойство се използва само във връзка със стандартната услуга за местоположение и не се използва при наблюдение на значителни промени в местоположението.

activityType

Типът потребителска дейност, свързана с актуализациите на местоположението.

@property(assign, nonatomic) CLActivityType activityType

Съображение:

Стойността по подразбиране е CLActivityTypeOther.