「-56.6462520」のような緯度と経度を表す2つの文字列があり、それから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];
coordinateに直接割り当てることはできません-CLLocationの読み取り専用プロパティです。
次のインスタンスメソッドを使用します。
- (instancetype)initWithLatitude:(CLLocationDegrees)latitude
longitude:(CLLocationDegrees)longitude
例:
CLLocation *LocationAtual = [[CLLocation alloc] initWithLatitude:-56.6462520 longitude:-36.6462520];
怠け者のための迅速な回答:
var LocationAtual: CLLocation = CLLocation(latitude: -56.6462520, longitude: -36.6462520)
CLLocation座標は実際には読み取り専用の値です
@property (nonatomic, readonly) CLLocationCoordinate2D coordinate;
したがって、ダミーデータを座標に割り当てる最良の方法は、AMITp方法です。
緯度と経度は二重の値であるため、この方法で割り当てる必要があります。
CLLocation *LocationAtual=[[CLLocation alloc] initWithLatitude:[[location objectForKey:@"latitude"] doubleValue] longitude:[[location objectForKey:@"longitude"] doubleValue]]