Swift中Double的无符号长龙

Gar*_*ice 12 double unsigned-long-long-int swift

我以前在Objective-C中使用以下内容:

double currentTime = CFAbsoluteTimeGetCurrent();

// self.startTime is called before, like     
// self.startTime = CFAbsoluteTimeGetCurrent();

double elapsedTime = currentTime - self.startTime;

// Convert the double to milliseconds
unsigned long long milliSecs = (unsigned long long)(elapsedTime * 1000);
Run Code Online (Sandbox Code Playgroud)

在我的快速代码中,我现在有:

let currentTime: Double = CFAbsoluteTimeGetCurrent()
let elapsedTime: Double = currentTime - startTime

let milliSecs: CUnsignedLongLong = elapsedTime * 1000
Run Code Online (Sandbox Code Playgroud)

但是我得到的错误是double无法转换为CUnsignedLongLong有意义的错误.有没有办法像Objective-C一样投射它?有没有解决的办法?

sim*_*ons 21

有没有办法像在Objective C中那样投射它?有没有解决的办法?

let milliSecs = CUnsignedLongLong(elapsedTime * 1000)
Run Code Online (Sandbox Code Playgroud)

要么

let milliSecs = UInt64(elapsedTime * 1000)
Run Code Online (Sandbox Code Playgroud)


Dav*_*ndz 5

CUnsignedLongLong 在标准库中通过以下方式定义:

typealias CUnsignedLongLong = UInt64
Run Code Online (Sandbox Code Playgroud)

因此,要将转换DoubleCUnsignedLongLong,您需要创建一个CUnsignedLongLong使用的新实例

CUnsignedLongLong(elapsedTime * 1000)
Run Code Online (Sandbox Code Playgroud)

要么

UInt64(elapsedTime * 1000)
Run Code Online (Sandbox Code Playgroud)