gpt4 book ai didi

ios - 使用 Realm 数据作为应用程序设置

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:31:13 24 4
gpt4 key购买 nike

我有一个名为“设置”的 Realm 类,其主键为“设置”。这样我在 Settings Realm 中将只有一个记录。 Settings 类包含几个变量(即 showDetailedCell (bool)、username (string)、appColor (string)),我需要在应用程序的生命周期中多次访问这些变量。他们还必须保持最新状态。例如。我有一个 tableView,如果 showDetailedCell 为真,它会在单元格中显示详细信息。如果用户在设置中关闭此功能,则应使用新设置的值更新 tableview。这就是我现在的做法,以确保我始终拥有最新的值(value),但我认为这不是很有效:

var _generalSettings : Settings?
var generalSettings : Settings? {
get {

if self._generalSettings == nil || self._generalSettings?.isInvalidated == true {

self._generalSettings = try? Settings.getNewOrExisting().object
}

self._generalSettings?.realm?.refresh()

return self._generalSettings
}
}

override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> RosterCell {

//Create the cell
let cell = tableView.dequeueReusableCell(withIdentifier: "MainCell", for: indexPath) as! MainCell

let showDetailed = generalSettings?.showDetailedCell ?? true

cell.setupAsDetailed = showDetailed

return cell

}

执行此操作的最佳方法是什么?谢谢!

最佳答案

如果我是你,我会选择 UserDefaults

An interface to the user's defaults database, where you store key-value pairs persistently across invocations of your app on a given device.

使用 UserDefaults (.plist) 存储数据对用户来说有点昂贵,就好像他们备份设备一样,the data stored in Document folder will also be backed up ,来自@matt。但是,如果您想保存应用程序的状态,您应该选择 UserDefaults,因为它将通过 iCloud 在用户的设备之间同步。

An app can use the iCloud key-value store to share small amounts of data with other instances of itself on the user’s other computers and iOS devices. For example, a magazine app might store the current issue and page number being read by the user so that other instances of the app can open to the same page when launched.

// Set User Preference
UserDefaults.standard.set("VALUE", forKey: "KEY")
UserDefaults.standard.synchronize()

// Get User Preference
UserDefaults.standard.value(forKey: "KEY")

关于ios - 使用 Realm 数据作为应用程序设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44673045/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com