我想为我的应用程序提供持久存储(持久浏览视图),我遇到了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是一个合适的选择吗?如果是,我如何从我的示例数据中提取hospital->name
?
如果没有,在这种情况下适合哪种存储?
我正在寻找与localStorage
Javascript相同的ios
答案 0 :(得分:2)
即使应用程序未处于活动状态,Realm也会保留数据。我想你不在乎。我建议创建一个会话对象(单个对象),其中Dictionary
作为数据属性之一。
将您的JSON转换为Dictionary并将其保存在您的单例会话对象中。像myData["Hospital"]["name"]
编辑:关于OP请求
第1步:设置单例
//
// MySession.swift
//
import Foundation
class MySession {
static let sharedInstance = MySession()
var myData = Dictionary<String,AnyObject>()
}
第2步:在第1课中以单身人士保存数据
var dict = Dictionary<String,AnyObject>()
dict["pid"] = "123"
dict["hospital"] = ["id":"234", "name":"newHorizon", "type":"nursing home"]
MySession.sharedInstance.myData = dict
第3步:在第2课中获取已保存的数据
let myData = MySession.sharedInstance.myData as Dictionary
let hospitalDict = myData["hospital"]
if let name = hospitalDict?["name"] as? String {
print(name)
}