Swift中双精度的未签名长-长
我曾在Objective-C中使用以下内容:Swift中双精度的未签名长-长,swift,double,unsigned-long-long-int,Swift,Double,Unsigned Long Long Int,我曾在Objective-C中使用以下内容: double currentTime = CFAbsoluteTimeGetCurrent(); // self.startTime is called before, like // self.startTime = CFAbsoluteTimeGetCurrent(); double elapsedTime = currentTime - self.startTime; // Convert the double to milli
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);
在我的swift代码中,我目前有:
let currentTime: Double = CFAbsoluteTimeGetCurrent()
let elapsedTime: Double = currentTime - startTime
let milliSecs: CUnsignedLongLong = elapsedTime * 1000
但是我得到了一个错误,double
不能转换为CUnsignedLongLong
,这是有道理的。有没有办法像在Objective-C中那样施展它?有办法解决这个问题吗
有没有一种方法可以像在Objective C中那样施展它?有办法解决这个问题吗
或
CUnsignedLongLong
在标准库中定义为:
typealias CUnsignedLongLong = UInt64
因此,要将Double
转换为CUnsignedLongLong
,需要使用创建CUnsignedLongLong
的新实例
CUnsignedLongLong(elapsedTime * 1000)
或
Swift不允许隐式类型转换。使用构造函数为其类型创建值
let milliSecs = CFUnsignedLongLong(elapsedTime * 1000)
CUnsignedLongLong(elapsedTime * 1000)
UInt64(elapsedTime * 1000)
let milliSecs = CFUnsignedLongLong(elapsedTime * 1000)