我想将从mapView.userLocation.location.coordinate.longitude返回的值插入到我的sqlite3数据库中。我不确定它的类型。我不能这样做:
sqlite3_bind_text(stmt, 1, [mapView.userLocation.location.coordinate.longitude floatValue], -1, nil);
它给“无法转换为指针类型”错误,因为经度不是浮点数,我想。
字段的类型是数据库表中的FLOAT。如何将经度值转换为浮动值?
非常感谢。
答案 0 :(得分:4)
MKUserLocation的文档显示location属性的类型为CLLocation。 CLLocation的文档显示坐标属性的类型为CLLocationCoordinate2D。
Core Location Data Types Reference表明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);