保存位置时,我应该在DB中存储哪些特定数据

时间:2015-03-10 08:15:29

标签: ios swift

我想保存/存储用户的当前位置但不知道我应该在DB中存储哪些特定数据以及我的数据库结构应该是什么?我想检索位置信息并将其显示在地图视图中。实现这一目标的最佳方法是什么?关于数据库结构,我的数据库表上是否应该有单独的纬度和经度列?

2 个答案:

答案 0 :(得分:1)

您可以使用NSKeyedarchiver和NSKeyedUnarchiver将其保存为NSData,如下所示:

let locationData = NSKeyedArchiver.archivedDataWithRootObject(yourLocation)
NSUserDefaults.standardUserDefaults().setObject(locationData, forKey: "myLocation")


if let loadedData = NSUserDefaults.standardUserDefaults().dataForKey("myLocation") {
    if let loadedLocation = NSKeyedUnarchiver.unarchiveObjectWithData(loadedData) as? CLLocation {
        println(loadedLocation.description)
    }
}

答案 1 :(得分:0)

您应将纬度和经度存储为单独的列。

如果将位置存档到包含两个值的对象中,则无法访问数据库级别的各个值。您必须获取对象并从中提取纬度和经度。

虽然在单个列中保存纬度和经度会使代码延长几行,但您可以使用数据库查询中的坐标。