gpt4 book ai didi

ios - 无法在 NSUserDefaults 中设置数组

转载 作者:行者123 更新时间:2023-11-28 09:20:25 24 4
gpt4 key购买 nike

var arr = defaults.arrayForKey("kWeeks") as [WeekReport]?
if arr? {
var arr2 = arr!
arr2.append(report)
defaults.setObject(arr2, forKey: "kWeeks") // Crash
defaults.synchronize()
}

我尝试设置 arr2 ,它将在可选检查后添加。但它在 setObject() 上崩溃并出现错误:EXC_BAD_ACCESS

我检查过,println()arr2 不是 nil 并且包含上面示例中附加的元素。 reportWeekReport 类型。

最佳答案

var arr = defaults.arrayForKey("kWeeks") as [WeekReport]?

正在强制转换为可选的 WeekReport 数组。相反,你真的想做一个可选的转换:

if let arr = defaults.arrayForKey("kWeeks") as? [WeekReport] {
arr.append(report)
defaults.setObject(arr, forKey: "kWeeks")
defaults.synchronize()
}

这是说,“如果有一个可以转换为 WeekReport 数组的“kWeeks”数组,请将其作为 arr 执行以下操作”

您还需要确保 WeekReport 继承自 NSCoding protocol以便它可以转换为数据。

关于ios - 无法在 NSUserDefaults 中设置数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25107460/

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