Преобразовать NSNumber в CLCoordinate - PullRequest
3 голосов
/ 01 сентября 2009

Я хочу вытащить список координат из базы данных в массив (перед отображением их на карте). однако в базе данных они имеют тип Number, и я не могу понять, как преобразовать их в координаты.

Это не работает: Где у меня есть объект ATM (координаты для банкоматов) с NSNumbers для широты и долготы. Это в цикле с индексом i, чтобы вытащить их один за другим. Массив atmsArray уже загружен.

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


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

Показывает ошибки: -CLLocationCoordinate2D не является именем или псевдонимом класса Objective C значение указателя, используемое, когда ожидалось значение с плавающей запятой значение указателя, используемое, когда ожидалось значение с плавающей запятой

Я пробовал несколько разных вещей, но не могу понять это. Если вам нужна дополнительная информация, пожалуйста, дайте мне знать.

Ответы [ 2 ]

14 голосов
/ 04 сентября 2010

aAtm.Longitude и aAtm.Latitude - это NSNumbers, которые являются указателями и поэтому не могут быть преобразованы в CLLocationDegrees. Вам нужно использовать двойные значения NSNumbers.

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

Согласно этому ответу

6 голосов
/ 14 сентября 2009

что вы хотите это:

CLLocationCoordinate2D coord;
coord.longitude = (CLLocationDegrees)aATM.Longitude;
coord.latitude = (CLLocationDegrees)aATM.Latitude;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...