在Swift中将CLLocationSpeed转换为long

马丁·克拉森

我正在尝试在Swift中获得GPS速度。我已经设置好所有内容,现在正在尝试进行一些计算。我想将MS“字符串”转换为KMH。因此,我试图将类型转换为long类型,但无法使其正常工作。

我已经试过了:

var ms: long?
ms = LocationManager.location.speed

但是我得到“ CLLocationspeed不能转换为long”

我是iOS编程和Swift的新手,所以我不知道如何解决此问题。

空速

您应该首先阅读《雨燕书》,但是:

long在Swift中不是标准类型(不确定在哪里可以找到一个:)。可以使用一个合适的整数类型Int(除非确切的大小对您很重要,但可能不重要)。但是CoreLocation中的CLLocationSpeed是一种类型别名Double,您可能应该坚持使用它来进行速度计算。

在Swift中,类型之间的大多数转换不会隐式发生。如果您确实希望将aDouble变成an Int,则需要对其进行显式转换let ms = Int(LocationManager.location.speed)

当您来自类似C的语言时,这感觉很痛苦。但是背后有充分的理由。例如,当您将浮点数的小数部分分配给整数类型时,应该怎么办?您可能忘记了函数正在返回浮点数并且不小心引入了截断错误吗?

为了弥补这一点,Swift还提供了类型推断。因此,除非您想显式控制类型,否则甚至不必给它们:

// type of ms is automatically inferred to be CLLocationSpeed (alias for Double)
let ms = LocationManager.location.speed
// 3.6 floating-point literal is automatically converted to appropriate type
// type and kph is automatically a Double
let kph = ms * 3.6

大多数时候,您不需要指定类型,只需将其从上下文中推断出来即可。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在C ++中将long转换为CString

来自分类Dev

在Java中将long转换为int

来自分类Dev

在目标C中将double转换为long long

来自分类Dev

在C ++中将long long转换为Hex和Binary

来自分类Dev

在C ++中将long long转换为Hex和Binary

来自分类Dev

在C ++中将字符串转换为unsigned long long

来自分类Dev

在Swift中将float值转换为String

来自分类Dev

在Swift中将CGFloat转换为CFloat

来自分类Dev

在Swift中将Int转换为Double

来自分类常见问题

在Swift中将String转换为Float

来自分类Dev

在Swift中将NSArray转换为NSMutableArray

来自分类Dev

在Swift中将字典值转换为CGFloat

来自分类Dev

在Swift中将Any转换为AnyObject

来自分类Dev

在Swift中将ClosedInterval <String>转换为[String]

来自分类Dev

在Swift中将UIInterfaceOrientation枚举转换为AVCaptureVideoOrientation

来自分类Dev

在Swift中将NSData转换为整数

来自分类Dev

在Swift中将整数转换为NSData

来自分类Dev

在Swift中将Character转换为Int

来自分类Dev

在Swift中将String转换为NSDate

来自分类Dev

在Swift中将字节转换为char

来自分类Dev

在Swift中将CGFloat转换为NSNumber

来自分类Dev

在Swift中将Int转换为String

来自分类Dev

在Swift中将Character转换为Int

来自分类Dev

在Swift中将Kelvin转换为摄氏

来自分类Dev

在Swift中将IMP转换为func

来自分类Dev

在Swift中将地图从Firestore转换为字典

来自分类Dev

在Swift中将UIInterfaceOrientation枚举转换为AVCaptureVideoOrientation

来自分类Dev

在Swift中将float值转换为String

来自分类Dev

在Swift中将CGFloat转换为CFloat