【发布时间】:2021-06-25 18:17:50
【问题描述】:
我在尝试将用户默认数组移动到第二个数组时遇到问题,因此我可以将其加载到表格视图中。
我的 userdefault 只是一个 Int 类型的字段。我能够将数据存储在 UD 中,当我显示它时,它会显示可选值:
[176, 177]
我在视图的顶层声明了以下内容:
let defaults = UserDefaults.standard
var intArray = [[Int:Any]]()
在 viewDidLoad 我有以下内容:
override func viewDidLoad() {
super.viewDidLoad()
intArray = defaults.array(forKey: "Favorites") as? [[Int: Any]] ?? []
print(defaults.array(forKey: "Favorites"))
}
intArray 始终为空,但是当我打印收藏夹 UserDefault 时,它会像上面那样显示。
显然,我在这里做错了;任何帮助将不胜感激。
【问题讨论】:
-
现在,您正在尝试解码以
Int作为键和Any作为值的字典数组(外括号是数组,内括号是@987654326 @ 是字典)。如果将[[Int:Array]]替换为[Int]是否有效? -
不,它显示相同的 o intArray [[Int]] 0 个值
-
看起来您刚刚评论的内容中还有一组额外的括号。当您执行当前代码的
print时,您能准确地显示控制台的内容吗?现在你说的是optional values: [176, 177],我知道这不是完全它所说的。 -
您是否期望
intArray拥有一些数据模型,例如 {1: "One"}。您能否发布您对intArray的预期数据样本 -
我的错,是的,我把多余的括号留在里面了。把它们拿出来解决了这个问题。 jnpdx 将您的建议作为答案,我很乐意为此感谢您。其他所有人都感谢您的帮助。
标签: arrays swift userdefaults