【发布时间】:2021-06-25 05:14:18
【问题描述】:
我有一个响应,我将该响应存储在领域数据库中, 我得到了以下响应,但它以错误的顺序保存。
它保存在如下领域中,
“appData3”
“appData8”
“appData4”
“appData1”
“appData7”
“appData1”
“appData6”
“appData5”
回复如下
{
"data": {
"APP_DATA_1": {
"vValue": “appData1”
},
"APP_DATA_2": {
"vValue":“appData2”
},
"APP_DATA_3": {
"vValue": “appData3”
},
"APP_DATA_4": {
"vValue":“appData4”
},
"APP_DATA_5": {
"vValue": “appData5”
},
"APP_DATA_6": {
"vValue": “appData6”
},
"APP_DATA_7": {
"vValue": “appData7”
},
"APP_DATA_8": {
"vValue": “appData8”
}
}
}
我使用以下代码存储价值
DataManager.shared.store(from: data.data.appData1)
DataManager.shared.store(from: data.data.appData2)
DataManager.shared.store(from: data.data.appData3)
DataManager.shared.store(from: data.data.appData4)
DataManager.shared.store(from: data.data.appData5)
DataManager.shared.store(from: data.data.appData6)
DataManager.shared.store(from: data.data.appData7)
DataManager.shared.store(from: data.data.appData8)
func store<T>(from object: T) where T: Object {
realmMainDB.beginWrite()
realmMainDB.add(object, update: .all)
try! realmMainDB.commitWrite()
}
如果您想要任何相关代码,请告诉我, 我很欣赏存储该响应的另一种方法或方式。
或者让我知道我怎样才能将该响应存储在用户默认值中。 谢谢
【问题讨论】:
-
请不要以这种方式使用用户默认值,除非是出于应用用户偏好。用户默认值旨在存储偏好;他们首选的测量单位或媒体播放速度。见User Defaults
-
@Jay - 你能解释一下,为什么我们不能使用 UserDefaults 来存储 json 小数据?
-
您当然可以这样做,只要它符合用户默认值的预期用途 - 请阅读我上面评论中的链接。它在问题中的使用方式似乎是存储动态应用程序级数据,而不是用户如何与应用程序交互的偏好(用户默认值)。然而,这并不是很清楚,所以我的假设可能不正确。