如果我需要保存DispatchTime.now()的值以在调用它的函数之外访问它,那么变量类型是什么?
编辑:变量类型是DispatchTime但我看不到将该值保存为变量的方法,因此我可以将它传递给prepare(for segue)中的另一个视图控制器或跨函数使用它。
var t = DispatchTime
[类型名称后的预期成员名称或构造函数调用]
var t = DispatchTime()
[参数'uptimeNanoseconds'在调用中缺少参数]
var t = DispatchTime.self
(没有错误,但是稍后尝试t = DispatchTime.now()['无法指定'DispatchTime'类型的值来键入'DispatchTime.Type'])
答案 0 :(得分:0)
您可以将'occupy'
存储为变量。但是,如果您需要将其存储在应用程序内存之外的某个位置(某些缓存等),您应该查看DispatchTime
的此属性:
DispatchTime
这是它的原始值,以纳秒为单位。从文档(https://developer.apple.com/reference/dispatch/dispatch_time_t)中,您可以看到它的类型为UInt64。为了让一切变得更好,您可以使用以下方法初始化public let rawValue: dispatch_time_t
:
DispatchTime
通过这种方式,您可以将DispatchTime(uptimeNanoseconds: <UInt64>)
的原始值存储在任意位置。
答案 1 :(得分:-1)
想出如何做到这一点,但不再在我的项目中使用DispatchTime。
可以像这样设置变量:
var t = DispatchTime(uptimeNanoseconds: 0)
然后用当前时间填充变量:t = DispatchTime.now()
尝试使用时,此方法没有给我正确的秒数:
let nanoTime = endingTime.uptimeNanoseconds - startTime.uptimeNanoseconds
let timeInterval = Double(nanoTime) / 1_000_000_000
我转而使用CFAbsoluteTime()变量并在启动和停止时将其值设置为CFAbsoluteTimeGetCurrent()。
那样totalTime = endTime - startTime
给了我正确的秒数