2009-09-01 5 views
3

データベースから座標のリストを配列にプルしたい(マップ上に表示する前に)。しかし、データベースではNumber型であるため、座標に変換する方法がわかりません。NSNumberをCLCoordinateに変換する

これは動作しません: 私は、緯度と経度のNSNumbersを持つATMオブジェクト(座標はatmマシン用です)を持っています。これは、索引iを1つずつ取り出してループしています。 atmsArrayは既にロードされています。

ATM *aATM = [self.atmsArray objectAtIndex:i]; 


CLLocationCoordinate2D coord=[[CLLocationCoordinate2D alloc] initWithLatitude:(CLLocationDegrees)aATM.Latitude longitude:(CLLocationDegrees)aATM.Longitude]; 

はエラーを表示します: -CLLocationCoordinate2Dは、浮動小数点値は浮動小数点値が

予想されたときに使用さ -pointer値が期待されたときに使用objectiveCクラス名またはエイリアス -pointer値ではありません

私はいくつかのことを試しましたが、それを理解することはできません。さらに情報が必要な場合は、私に知らせてください。あなたが欲しいもの

答えて

6

はこれです:

CLLocationCoordinate2D coord; 
coord.longitude = (CLLocationDegrees)aATM.Longitude; 
coord.latitude = (CLLocationDegrees)aATM.Latitude; 
14

aAtm.LongitudeとaAtm.Latitudeはポインタであり、そのようにCLLocationDegreesにキャストすることはできませんNSNumbersです。 NSNumbersのdouble値を使用する必要があります。

CLLocationCoordinate2D coord; 
coord.longitude = (CLLocationDegrees)[aATM.Longitude doubleValue]; 
coord.latitude = (CLLocationDegrees)[aATM.Latitude doubleValue]; 

As per this answer

関連する問題