同时更新多个 UserDefaults 文件

Update several UserDefaults files at the same time

我正在编写一个函数来覆盖存储在几个 UserDefaults 文件中的值。

这些文件 key 名称相似但由于动态保存而具有不同的终止符,例如:

forKey: buyOrSellBitcoin-USD

forKey: buyOrSellBitcoin-GBP

forKey: buyOrSellBitcoin-CNY

是否可以用一行代码同时覆盖所有文件:

forKey: buyOrSellBitcoin-\(x) ?

没有多个 UserDefaults 文件。这是一家 key/value 商店。您将 key/value 对写入商店。

不,无法指定通配符以某种方式告诉 OS 更新您定义的所有遵循特定模式的键。

但是,您可以将字典等集合对象写入UserDefaults:

let coinsDict = [
  "buyOrSellBitcoin-USD": valueForUSD,
  "buyOrSellBitcoin-GBP": valueForGBP,
  "buyOrSellBitcoin-CNY": valueForCNY
]

UserDefaults.standard.set(coinsDict, forKey: "coinsDict")

然后您将从 UserDefaults 中读取生成的字典并将其解压缩到您的数据模型中。