Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 将mapView.userLocation.location.coordinate.longitude保存到sqlite数据库中_Objective C_Sqlite_Mkmapview - Fatal编程技术网

Objective c 将mapView.userLocation.location.coordinate.longitude保存到sqlite数据库中

Objective c 将mapView.userLocation.location.coordinate.longitude保存到sqlite数据库中,objective-c,sqlite,mkmapview,Objective C,Sqlite,Mkmapview,我想将从mapView.userLocation.location.coordinate.longitude返回的值插入我的sqlite3数据库。我不确定它的类型。我不能这样做: sqlite3_bind_text(stmt, 1, [mapView.userLocation.location.coordinate.longitude floatValue], -1, nil); 它给出了“无法转换为指针类型”错误,因为我猜经度不是浮动的 数据库表中的字段类型为FLOAT。如何将经度值转换为浮

我想将从mapView.userLocation.location.coordinate.longitude返回的值插入我的sqlite3数据库。我不确定它的类型。我不能这样做:

sqlite3_bind_text(stmt, 1, [mapView.userLocation.location.coordinate.longitude floatValue], -1, nil);
它给出了“无法转换为指针类型”错误,因为我猜经度不是浮动的

数据库表中的字段类型为FLOAT。如何将经度值转换为浮点值


非常感谢。

MKUserLocation的文档显示location属性的类型为CLLocation。CLLocation的文档显示坐标属性的类型为CLLocationCoordinate2D

显示CLLocationCoordinate2D是一个包含纬度和经度的结构,每个纬度和经度都属于CLLocationDegrees类型

在同一页上,CLLocationDegrees只是
double
的另一个名称。所以纬度和经度是双重的

因此,不要使用
sqlite3\u bind\u text
,而是使用
sqlite3\u bind\u double

sqlite3_bind_double(stmt, 1, mapView.userLocation.location.coordinate.longitude);
要加载该值,您可以使用以下命令:

double longitude = sqlite3_column_double(stmt, column_index_here);

MKUserLocation的文档显示location属性的类型为CLLocation。CLLocation的文档显示坐标属性的类型为CLLocationCoordinate2D

显示CLLocationCoordinate2D是一个包含纬度和经度的结构,每个纬度和经度都属于CLLocationDegrees类型

在同一页上,CLLocationDegrees只是
double
的另一个名称。所以纬度和经度是双重的

因此,不要使用
sqlite3\u bind\u text
,而是使用
sqlite3\u bind\u double

sqlite3_bind_double(stmt, 1, mapView.userLocation.location.coordinate.longitude);
要加载该值,您可以使用以下命令:

double longitude = sqlite3_column_double(stmt, column_index_here);

Use.For future reference@ozancali,您只需按住option键并双击一个属性/变量,它就会告诉您它是什么类型,并提供一个直接指向文档和示例代码的快捷方式。相反,如果您按住command键并双击,它将直接带您进入属性/变量的标题定义。这确实帮助了我,Jack,非常感谢。我对IDE和语言非常陌生,时间非常有限,所以我没有时间检查文档,甚至一些基础知识。还有一个问题,是否有类似Visual Studio的quick watch属性的东西,我可以在运行时使用它来检查值?有关监视变量值的详细信息,请参阅。顺便说一句,除非你将@放在他们的用户名前面,否则不会通知评论者你的回复。@Abitobevious哦,我明白了,我还需要学习如何使用Stackoverflow,我认为它有一个Facebook中的通知系统:)谢谢你的提示。使用。供将来参考@ozancali,您只需按住option键并双击属性/变量,它就会告诉您它是什么类型,并提供一个直接指向文档和示例代码的快捷方式。相反,如果您按住command键并双击,它将直接带您进入属性/变量的标题定义。这确实帮助了我,Jack,非常感谢。我对IDE和语言非常陌生,时间非常有限,所以我没有时间检查文档,甚至一些基础知识。还有一个问题,是否有类似Visual Studio的quick watch属性的东西,我可以在运行时使用它来检查值?有关监视变量值的详细信息,请参阅。顺便说一句,除非你把@放在他们的用户名前面,否则不会通知评论者你的回复。@Abitobevious哦,我明白了,我还需要学习如何使用Stackoverflow,我认为它有一个Facebook中的通知系统:)谢谢你的提示。是的,这很有帮助,谢谢你。我应该检查一下sqlite方法,但是没有时间直接在这里问,很抱歉。是的,这很有帮助,谢谢。我应该检查sqlite方法,但是没有时间直接在这里问,对此我很抱歉。