我有两个表示纬度和经度的字符串,如:“ - 56.6462520”,我想分配给CLLocation对象以与我当前的位置进行比较。我尝试了以下代码,但我只得到错误:
CLLocation * LocationAtual = [[CLLocation alloc]init];
LocationAtual.coordinate.latitude = @"-56.6462520";
LocationAtual.coordinate.longitude = @"-36.6462520";
然后将对象与我的实际位置纬度和经度进行比较。有什么建议吗?
答案 0 :(得分:107)
您不能直接分配到坐标 - 它是CLLocation的只读属性。
使用以下实例方法:
- (instancetype)initWithLatitude:(CLLocationDegrees)latitude
longitude:(CLLocationDegrees)longitude
示例:
CLLocation *LocationAtual = [[CLLocation alloc] initWithLatitude:-56.6462520 longitude:-36.6462520];
答案 1 :(得分:13)
我认为你需要:
LocationAtual.coordinate.latitude = [@"-56.6462520" floatValue];
LocationAtual.coordinate.longitude = [@"-36.6462520" floatValue];
答案 2 :(得分:7)
快速回答懒惰:
var LocationAtual: CLLocation = CLLocation(latitude: -56.6462520, longitude: -36.6462520)
答案 3 :(得分:2)
CLLocation坐标实际上是一个只读值
@property (nonatomic, readonly) CLLocationCoordinate2D coordinate;
因此,将虚拟数据分配给坐标的最佳方法是AMITp方式
答案 4 :(得分:1)
纬度和经度是双倍值,因此需要以这种方式分配。
CLLocation *LocationAtual=[[CLLocation alloc] initWithLatitude:[[location objectForKey:@"latitude"] doubleValue] longitude:[[location objectForKey:@"longitude"] doubleValue]]