«Лучший» способ хранения зависит от того, что вы хотите с ним сделать:
- Если вы хотите "тот же" CLLocation, сериализуйте его. NSKeyedUnarchiveFromData в порядке.
- Если вы просто хотите искать по широте и долготе, сохраните их как двойные (и установите флажок «проиндексировано»).
Существует множество дополнительных свойств, которые можно сохранить / восстановить, если вы сделаете это вручную (высота, точность по горизонтали, точность по вертикали, отметка времени). Есть еще некоторые, которые вы не можете (скорость, курс); CLLocation не предоставляет подходящий метод init, а свойства доступны только для чтения.
Все дополнительные свойства полезны, если вы записываете дорожку. Высота полезна, если вы записываете POI на гористой местности («нам еще нужно подняться на 100 м»). Точность по горизонтали / вертикали может использоваться для представления того, насколько велик POI (например, город может иметь «точность по горизонтали» в несколько километров и отображаться как большой круг).