Ответ 1
Думаю, вам нужно:
LocationAtual.coordinate.latitude = [@"-56.6462520" floatValue];
LocationAtual.coordinate.longitude = [@"-36.6462520" floatValue];
У меня есть две строки, представляющие широту и долготу, например: "-56.6462520", и я хочу назначить объект CLLocation для сравнения с моим текущим местоположением. Я пробовал следующий код, но я получаю только ошибки:
CLLocation * LocationAtual = [[CLLocation alloc]init];
LocationAtual.coordinate.latitude = @"-56.6462520";
LocationAtual.coordinate.longitude = @"-36.6462520";
а затем сравнить объект с моей фактической широтой и долготой местоположения. Любые предложения?
Думаю, вам нужно:
LocationAtual.coordinate.latitude = [@"-56.6462520" floatValue];
LocationAtual.coordinate.longitude = [@"-36.6462520" floatValue];
Вы не можете назначить непосредственно в координату - это свойство readonly для CLLocation.
Используйте следующий метод экземпляра:
- (instancetype)initWithLatitude:(CLLocationDegrees)latitude
longitude:(CLLocationDegrees)longitude
Пример:
CLLocation *LocationAtual = [[CLLocation alloc] initWithLatitude:-56.6462520 longitude:-36.6462520];
Swift Ответ для ленивого:
var LocationAtual: CLLocation = CLLocation(latitude: -56.6462520, longitude: -36.6462520)
Координата CLLocation фактически является значением только для чтения
@property (nonatomic, readonly) CLLocationCoordinate2D coordinate;
Таким образом, лучший способ присвоить фиктивные данные координатам - AMITp way
широта и долгота являются двойными значениями, поэтому их необходимо назначить таким образом.
CLLocation *LocationAtual=[[CLLocation alloc] initWithLatitude:[[location objectForKey:@"latitude"] doubleValue] longitude:[[location objectForKey:@"longitude"] doubleValue]]