bic*_*bac 34 iphone store core-data save cllocation
我正在尝试使用Core Location,MapKit和Core Data框架保存位置并在地图上检索位置.
我所做的是我刚刚创建了名为POI的实体并添加了诸如纬度(双重类型),经度(双重类型)等属性.
简单地说,我的应用程序使用两个NSNumber保存POI.(lat和long)但我觉得必须有一个更聪明的方法来存储CLLocation.
干杯.
nev*_*ing 35
你做的很好.您应该将核心数据中的纬度和经度保存为双精度数.当您需要再次获取信息时,从Core Data获取双打并构造CLLocationCoordinate2D具有类似函数的结构CLLocationCoordinate2DMake.没有内置的方法来存储位置,因此存储纬度和经度组件很好.
如果您没有在纬度或经度上进行任何数学运算(找到边界框等),您可以将它们存储为字符串.浮点数和双精度数可以稍微改变它们的值,使比较操作失败.
Tec*_*Zen 27
CLLocation实现NSCoding协议,因此您可以将它们作为可转换属性存储在Core Data中.您可以使用默认的NSKeyedUnarchiveFromData值转换器.
您只需将CCLocation对象传递给托管对象属性,它就会将其序列化为数据并将其作为blob存储在SQL存储中.当您需要返回位置对象时,它会自动反转该过程并返回一个完全填充的CCLocation对象.
这可能是获得你想要的最简单方法.
tc.*_*tc. 17
存储它的"最佳"方式取决于您想要用它做什么:
如果手动执行此操作,可以保存/恢复一些其他属性(海拔高度,水平精度,垂直精度,时间戳).还有一些你不能(速度,标题); CLLocation不提供合适的init方法,并且属性是只读的.
如果您正在录制曲目,则所有额外属性都很有用.如果您在山区地形上记录POI("我们仍然需要攀爬100米"),海拔高度非常有用.水平/垂直精度可用于表示POI的大小(例如,城市可能具有几公里的"水平精度"并显示为大圆).
| 归档时间: |
|
| 查看次数: |
20929 次 |
| 最近记录: |