Sto tentando di salvare una posizione e recuperare la posizione su una mappa dopo aver utilizzato Core Location, MapKit e Core Data frameworks.Come memorizzare CLLocation utilizzando Core Data (iPhone)?
Quello che ho fatto è che ho appena creato un'entità chiamata POI e ho aggiunto proprietà come latitudine (tipo doppio), longitudine (tipo doppio) con poche altre.
In poche parole, la mia app salva POI con due NSNumbers. (lat e long), ma mi sembra che ci debba essere un modo più intelligente di memorizzare CLLocation rispetto a quello.
evviva.
Grazie nevan, in realtà ho salvato quei valori di coordinate anche in NSString per la visualizzazione in UILabel. Ho in programma di fare un po 'di matematica con le coordinate, ma non sapevo che "Floats and doubles possono cambiare leggermente i loro valori, facendo fallire le operazioni di confronto". che mi riporta alla domanda originale con un leggero cambiamento; Se è necessario calcolare la distanza e confrontare, qual è il modo migliore per memorizzare i valori delle coordinate CLLocation utilizzando i dati principali? – bicbac
Se stai facendo qualche calcolo su di loro, come trovare tutte le latitudini maggiori di 12.34, le memorizzerei come float o double. Basta non fare affidamento sul fatto che il valore float sia esattamente lo stesso tra la memorizzazione e il recupero. Se vuoi assicurarti che il valore non cambi (anche di una piccola frazione) usa il decimale. Non sono sicuro di quanto sia veloce fare matematica con i tipi decimali. Ecco un link: http://stackoverflow.com/questions/159255/che-è-il-ideale-data-tipo-di-utilizzare-quando-storing-latitude-longitudes-in-unmysql/159333#159333 –
Se è necessario memorizzare valori numerici con grande precisione ed eseguire operazioni su di essi, è necessario utilizzare il numero NSDecimale. Utilizzare un trasformatore di valori per archiviarli in Core Data. Tuttavia, penso che sarebbe eccessivo in questo caso. I galleggianti e i doppi possono cambiare i valori, ma solo agli estremi della loro precisione. Latitudine/Longitudine richiedono solo al massimo 4 cifre decimali a destra in modo da poter semplicemente controllare le cifre significative per memorizzare perfettamente e recuperare quei valori con float. – TechZen