Ошибка при назначении широты и долготы

#iphone #google-maps

#iPhone #google-карты

Вопрос:

Я использую mapkit и использую тонкий код

     double      latitude1;
    double      longitude1;
@property (assign) double latitude1;
@property (assign) double longitude1;
  

широта и долгота указаны двойным шрифтом в базе данных, но я получил ошибку при написании этой строки: (

 CLLocationCoordinate2D theCoordinate;
        theCoordinate.latitude  = [ classObj.latitude1 doubleValue];
        theCoordinate.longitude = [ classObj.longitude1 doubleValue];
  

эта ошибка возникает
«недопустимый тип получения double»
у меня есть convert в float, но это также не сработало..

Комментарии:

1. Использовали ли вы @synthesize для генерации средства получения? И не используйте assign для примитивных типов.

2. ‘@синтезировать широту1,долготу 1’

Ответ №1:

свойство latitude1 уже является обычным double — вам не нужен (и вы не можете использовать) вызов doubleValue с ним. Просто напишите:

 theCoordinate.latitude  = classObj.latitude1;
  

Или даже лучше

 LLocationCoordinate2D theCoordinate = CLLocationCoordinate2DMake(classObj.latitude1, classObj.longitude1);
  

Ответ №2:

Вы определяете, что широта1 и долгота1 являются двойными

Итак, вы можете назначить напрямую.

Нравится

 CLLocationCoordinate2D theCoordinate;
theCoordinate.latitude  = classObj.latitude1;
theCoordinate.longitude = classObj.longitude1;
  

Ответ №3:

[ classObj.latitude1 doubleValue] обычно используется, когда требуется приведение типов, но в CLLocationCoordinate2D широта и долгота являются двойными. Нет необходимости вводить приведение, просто назначьте значение.

 CLLocationCoordinate2D theCoordinate;
        theCoordinate.latitude  = classObj.latitude1;
        theCoordinate.longitude = classObj.longitude1;