2011-10-26 5 views
20

"-56.6462520"のような緯度と経度を表す2つの文字列があり、現在の位置と比較するためにCLLocationオブジェクトに割り当てたいと思います。次のコードを試しましたが、のみ:CLLocationの緯度と経度からの文字列

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

このオブジェクトを私の実際の位置の緯度と経度と比較してください。助言がありますか?

+6

Objective-Cの規則では、VAR名のキャメルケースです。 –

答えて

11

私はあなたがする必要があると思う:

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

私はポイントを得た、私は変換が正しいと思うが、私はこのエラーを取得している: "Lvauleは、割り当ての左オペランドとして必要" ... –

+1

http://stackoverflow.com/questions/5527878/lvalue-required-as-左オペランド代入 –

+2

受け入れられた回答を削除することはできませんが、AmitPの回答は正しいことに同意します。私の答えは「文字列を数字として使うことはできません」という行に沿ったものです。 –

101

あなたは座標に直接割り当てることはできません - それはCLLocationの読み取り専用プロパティです。
は、次のインスタンスメソッドを使用します。

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

は、例えば:

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

これは本当です.CLLocation属性に割り当てることはできません。 –

+0

前の回答は間違っていました。これは正しいものです。 – hook38

2

CLLocation座標実際

@property (nonatomic, readonly) CLLocationCoordinate2D coordinate; 

読み取り専用値だから座標にダミーデータを割り当てるための最良の方法がありますAMITp方法

1

lattitudeとlongitu deは二重の値なので、このように割り当てる必要があります。怠け者のための

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

スウィフト回答:

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

怠惰なあなたに感謝します。 :D – PruitIgoe