gpt4 book ai didi

swift - 从 UserDefaults 获得的 bool 值打印为 0 或 1,即使保存为 Any

转载 作者:行者123 更新时间:2023-11-28 15:18:51 24 4
gpt4 key购买 nike

我正在将 [String : Any] 类型的字典保存到 UserDefaults,

当我在保存到 UserDefaults 之前打印字典时,字典中的 bool 值打印为 true 或 false,但是当我检索字典时,它打印为 0 或 1。

我见过类似的 SO 问题,其中的建议是使用 Any 而不是我所做的 AnyObject

下面是我正在使用的代码,请指教我哪里出错了。

static var profileDetails : [String: Any]{
get{
let defaults = UserDefaults.standard
let profileDetailsDict = defaults.object(forKey: "profileDetails") as? [String: Any] ?? [String : Any]()
print("Get profileDetailsDict : \(profileDetailsDict), type: \(type(of: profileDetailsDict))")
return profileDetailsDict
}
set (profileDetailsDict){
let defaults = UserDefaults.standard

print("Set profileDetailsDict: \(profileDetailsDict)")
defaults.set(profileDetailsDict, forKey: "profileDetails")
}
}


let profileDetailsDict = ["availabilityTimesDict": ["Saturday": ["times": [["startTime": 9:00 AM, "endTime": 1:30 PM], ["startTime": 2:30 PM, "endTime": 6:00 PM]], "weekday": Saturday, "available": true], "Tuesday": ["times": [["startTime": 2:30 PM, "endTime": 6:00 PM]], "weekday": Tuesday, "available": true]], "mobileNumber": "8458465845", "namesArray": ["name1", "name2"]] as [String: Any]


// Setting profileDetailsDict
profileDetails = profileDetailsDict

// Retrieving profileDetailsDict
let userDetails = profileDetails

最佳答案

这很正常。

当对象保存到 UserDefaults 时任何数值都桥接到 NSNumbertrue 的表示和 falseNSNumber10 .

你变得真实 truefalse返回

dict["available"] as! Bool

关于swift - 从 UserDefaults 获得的 bool 值打印为 0 或 1,即使保存为 Any,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46380005/

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