Guardando mapView.userLocation.location.coordinate.longitude en la base de datos sqlite

Quiero insertar el valor que regresa de mapView.userLocation.location.coordinate.longitude en mi base de datos sqlite3. No estoy seguro de su tipo. No puedo hacerlo de esta manera:

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

Da "No se puede convertir a un tipo de puntero" error porque la longitud no es flotante, supongo.

El tipo de campo es FLOAT en la tabla de la base de datos. ¿Cómo puedo convertir el valor de longitud a flotar de lo que sea?

Muchas gracias.

preguntado el 08 de enero de 11 a las 17:01

Utilización de FMDB. -

Para referencia futura @ozancali, simplemente puede mantener presionada la tecla de opción y hacer doble clic en una propiedad / variable y le dirá de qué tipo es y le proporcionará un acceso directo a la documentación y al código de muestra. Si, en cambio, mantiene presionada la tecla de comando y hace doble clic, lo llevará directamente a la definición del encabezado de la propiedad / variable. -

Eso realmente me ayudó Jack, muchas gracias. Soy bastante nuevo en el IDE y el lenguaje, y tengo un tiempo muy limitado, por lo que no tengo tiempo para verificar la documentación, e incluso algunos conceptos básicos. Una pregunta más, ¿hay algo como la propiedad de visualización rápida de Visual Studio, que puedo usar durante el tiempo de ejecución para verificar los valores? -

Consulta las Guía de depuración de Xcode para obtener detalles sobre cómo ver los valores de las variables. Por cierto, a los comentaristas no se les notifica su respuesta a menos que ponga @ delante de su ID de usuario. -

@aBitObvious Oh, ya veo, también necesito aprender a usar Stackoverflow, pensé que tenía un sistema de notificación como en Facebook :) gracias por los consejos. -

1 Respuestas

La documentación de MKUserLocation muestra que la propiedad de ubicación es de tipo CLLocation. Los documentos de CLLocation muestran que la propiedad de coordenadas es de tipo CLLocationCoordinate2D.

La Referencia de tipos de datos de ubicación principal muestra que CLLocationCoordinate2D es una estructura que contiene latitud y longitud, cada una de las cuales es de tipo CLLocationDegrees.

En la misma página, se muestra que CLLocationDegrees es solo otro nombre para double. Entonces la latitud y la longitud son de tipo doble.

Entonces en lugar de usar sqlite3_bind_text, Utilizar sqlite3_bind_double:

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

y para cargar el valor, usaría algo como:

double longitude = sqlite3_column_double(stmt, column_index_here);

Respondido el 08 de enero de 11 a las 22:01

Sí, eso ayudó, gracias. Debería haber verificado los métodos sqlite, pero no tuve tiempo, así que pregunté directamente aquí, lo siento. - bileyazan

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.