gpt4 book ai didi

swift - 将 CLLocationDegrees 更改为 Double/NSNumber 以保存在核心数据中(Swift)

转载 作者:搜寻专家 更新时间:2023-10-30 22:02:28 26 4
gpt4 key购买 nike

在尝试将我所有的 objective-c 代码更改为 Swift 时(这本身就是一个非常陡峭的学习曲线),我遇到了一个问题。

我只是想将 CLLocationDegrees 值保存到核心数据中。但我所做的一切都没有用。

我开始于:

self.myLocation?.locationCurrentLat = self.fixedLocation?.coordinate.latitude

但不知道如何将 CLLocationDegrees 向下转换(如果这是正确的)为 Double 或 NSNumber,我在 Google 上搜索的任何内容都没有帮助!

我显然对很多事情还是一头雾水。这当然是其中之一。

我可能做错了什么……或者需要做什么?

提前致谢

最佳答案

CLLocationDegrees 双倍。您不需要执行任何操作。

如果确实需要将其转换为 double ,请使用语法

Double(self.fixedLocation?.coordinate.latitude ?? 0)

但这不是必需的,因为 CLLocationDegrees 是 double 的类型别名。

要转换为 NSNumber,您需要使用

NSNumber(value: self.fixedLocation?.coordinate.latitude ?? 0)

编辑:

如果 self.fixedLocation 为 nil,我编辑了上面的代码以使用“nil coalescing operator”给出值 0。如果 fixedLocation 为 nil,让它返回一个包含 nil 的可选 Int 会更安全:

let latitude: Double?
if let location = self.fixedLocation {
latitude = Double(location.coordinate.latitude)
} else {
latitude = nil
}

关于swift - 将 CLLocationDegrees 更改为 Double/NSNumber 以保存在核心数据中(Swift),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30211946/

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