gpt4 book ai didi

ios - 可选到Int64为零,硬编码它可以工作

转载 作者:行者123 更新时间:2023-11-29 06:02:13 32 4
gpt4 key购买 nike

我有一个功能:

func setId(id: Int64?) {
self._id = id
}

这个函数在这里调用:

let defaults = UserDefaults.standard
let id = defaults.object(forKey: "userId") as? String
if (id != nil) {
setId(id: Int64(id!))
}

在函数setId()中,id的值似乎总是为零。当调试并单步执行堆栈中的一个调用时,对于调用者(第二段代码),id 的值为

采购订单 ID:

Optional<String>
- some : "Optional(350350002)"

当我将其检查为Int64时:

po Int64(id!):

当我用硬编码值检查它时:

po Int64(可选(“350350002”)!):

Optional<Int64>
- some : 350350002

另外po Int64((id as NSString)):nil

这是怎么回事?硬编码值与实际变量有何不同?

谢谢。

最佳答案

问题是以下内容被保存到 UserDefaults:String(describing: self._userId),当然将实际的单词“Optional(...”保存为 String。

我认为调试器向我显示了一个值为 350350002 的可选值,而不是一个实际的字符串:“Optional(350350002)”+保存到 UserDefaults 的代码不是我编写的,为什么我没有注意到这一点。

关于ios - 可选<String>到Int64为零,硬编码它可以工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54531616/

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