Подтвердить что ты не робот

Строка для широты и долготы CLLocation

У меня есть две строки, представляющие широту и долготу, например: "-56.6462520", и я хочу назначить объект CLLocation для сравнения с моим текущим местоположением. Я пробовал следующий код, но я получаю только ошибки:

CLLocation * LocationAtual = [[CLLocation alloc]init];
LocationAtual.coordinate.latitude = @"-56.6462520";
LocationAtual.coordinate.longitude = @"-36.6462520";

а затем сравнить объект с моей фактической широтой и долготой местоположения. Любые предложения?

4b9b3361

Ответ 1

Думаю, вам нужно:

LocationAtual.coordinate.latitude = [@"-56.6462520" floatValue];
LocationAtual.coordinate.longitude = [@"-36.6462520" floatValue];

Ответ 2

Вы не можете назначить непосредственно в координату - это свойство readonly для CLLocation.
Используйте следующий метод экземпляра:

- (instancetype)initWithLatitude:(CLLocationDegrees)latitude
                       longitude:(CLLocationDegrees)longitude

Пример:

CLLocation *LocationAtual = [[CLLocation alloc] initWithLatitude:-56.6462520 longitude:-36.6462520];

Ответ 3

Swift Ответ для ленивого:

var LocationAtual: CLLocation = CLLocation(latitude: -56.6462520, longitude: -36.6462520)

Ответ 4

Координата CLLocation фактически является значением только для чтения

    @property (nonatomic, readonly) CLLocationCoordinate2D coordinate;

Таким образом, лучший способ присвоить фиктивные данные координатам - AMITp way

Ответ 5

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

CLLocation *LocationAtual=[[CLLocation alloc] initWithLatitude:[[location objectForKey:@"latitude"] doubleValue] longitude:[[location objectForKey:@"longitude"] doubleValue]]