Присвоение 'double*' из несовместимого типа 'double'

У меня есть база данных SQLite с некоторыми полями типа double, и мне нужно извлечь это значение и поместить их в переменную экземпляра, но я получаю эту ошибку

  Assigning to 'double *' from incompatible type 'double'

это код:

Таблица базы данных.h

   @interface DatabaseTable : NSObject {
sqlite3 * database;

   }

   //........
   @property (nonatomic, assign)double *latitude; //latitude is a field of type double
   @property (nonatomic, assign)double *longitude; //longitude is a field of a type double

   @end

Таблица базы данных.m

   //.....
    while (sqlite3_step(statement) == SQLITE_ROW) {

       DatabaseTable * rowTable =[[ChinaDatabaseTable alloc]init];
           //.......

           rowTable.latitude =sqlite3_column_double(statement, 15); //here the error
           rowTable.longitude =sqlite3_column_double(statement, 16);//here the error

           //.....
     }

Что я могу сделать?


person Community    schedule 05.11.2012    source источник
comment
Может быть, посмотреть на это? developer.apple.com/library/mac /#documentation/Какао/Концептуальное/   -  person David Raijmakers    schedule 05.11.2012


Ответы (1)


Вам не нужно ставить * перед примитивными типами, такими как int, float, bool и т. д.

Поэтому измените код следующим образом:

   @property (nonatomic, assign)double latitude; //latitude is a field of type double
   @property (nonatomic, assign)double longitude; //longitude is a field of a type double

Если вам нужно создать переменную указателя, тогда ваш код в порядке.

Но вы не можете присваивать значения непосредственно значению указателя для примитивных типов.

Если вам нужно присвоить значение адреса, вам нужно сделать так:

double temp = sqlite3_column_double(statement, 15);
rowTable.latitude = &temp;
person Midhun MP    schedule 05.11.2012