Сохранение mapView.userLocation.location.coordinate.longitude в базу данных sqlite - PullRequest
1 голос
/ 08 января 2011

Я хочу вставить значение, возвращаемое из mapView.userLocation.location.coordinate.longitude, в мою базу данных sqlite3.Я не уверен в своем типе.Я не могу сделать это следующим образом:

sqlite3_bind_text(stmt, 1, [mapView.userLocation.location.coordinate.longitude floatValue], -1, nil);

Это дает «Не удается преобразовать в тип указателя» ошибка, потому что долгота не с плавающей точкой, я думаю.поля FLOAT в таблице базы данных.Как я могу преобразовать значение долготы в плавающее из того, что есть?

Большое спасибо.

1 Ответ

4 голосов
/ 08 января 2011

Документация для MKUserLocation показывает, что свойство location имеет тип CLLocation. Документы для CLLocation показывают, что свойство координаты имеет тип CLLocationCoordinate2D.

Справочник по типам данных Core Location показывает, что CLLocationCoordinate2D является структурой, содержащей широту и долготу, каждый из которых имеет тип CLLocationDegrees.

На той же странице CLLocationDegrees показано просто как другое имя для double. Так что широта и долгота имеют тип double.

Таким образом, вместо использования sqlite3_bind_text, используйте sqlite3_bind_double:

sqlite3_bind_double(stmt, 1, mapView.userLocation.location.coordinate.longitude);

и для загрузки значения вы должны использовать что-то вроде:

double longitude = sqlite3_column_double(stmt, column_index_here);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...