持久存储,在 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)
}
我想为我的应用程序持久存储(跨视图持久),我遇到了 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)
}