持久存储,在 iOS Swift 中存储一组键值对

Persistent storage to store one set of key-value pairs in iOS Swift

我想为我的应用程序持久存储(跨视图持久),我遇到了 Realm,但现在我认为它对于我正在尝试做的事情来说太重了。

基本上我有 JSON 格式的数据(每次应用程序启动时我都会获取这些数据,我想将它存储在一个变量中(在字典中),这样我就可以从我的 iPad 应用程序。(我也不关心应用程序关闭时数据是否丢失,我只希望当应用程序处于 运行 时,数据可以在应用程序的不同屏幕(视图)上使用)

示例数据

{
    "pid": 23,
    "name": "some name",
    "cities": [ {
                  "id": 1,
                  "name": "Bangalore"
                },
                {
                  "id": 2,
                  "name": "Mysore"
                }
                { //continues for about 100 more city entries
                }
              ],
    "hospital": {
                  "id": 234, 
                  "name": "newHorizon", 
                  "type": "nursing home"
                }
}

Realm 是一个合适的选择吗?如果是,我如何从我的示例数据中获取 say hospital->name

如果不是,这种情况下哪种存储方式合适?

我正在寻找 ios 相当于 Javascript

localStorage

即使应用程序未处于活动状态,Realm 也会保留数据。我想你不在乎。我建议创建一个会话对象(单例对象),其中 Dictionary 作为数据之一 属性.

将您的 JSON 转换为字典并将其保存在您的单例会话对象中。取像 myData["Hospital"]["name"]

编辑: 根据 OP 请求

第 1 步: 设置单例

//
//  MySession.swift
//

import Foundation

class MySession {

    static let sharedInstance = MySession()

    var myData = Dictionary<String,AnyObject>()
}

第2步:在class1

中以单例方式保存数据
var dict = Dictionary<String,AnyObject>()
dict["pid"] = "123"
dict["hospital"] = ["id":"234", "name":"newHorizon", "type":"nursing home"]

MySession.sharedInstance.myData = dict

步骤 3: 获取 class 中保存的数据 2

let myData = MySession.sharedInstance.myData as Dictionary
let hospitalDict = myData["hospital"]


if let name = hospitalDict?["name"] as? String {
    print(name)
}