私は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);
私のSwift私が現時点で持っているコード:
let currentTime: Double = CFAbsoluteTimeGetCurrent()
let elapsedTime: Double = currentTime - startTime
let milliSecs: CUnsignedLongLong = elapsedTime * 1000
ただし、double
をCUnsignedLongLong
に変換できないというエラーが表示されますが、これは理にかなっています。ただし、Objective-Cのようにキャストする方法はありますか?これを回避する方法はありますか?
ただし、Objective Cのようにキャストする方法はありますか?これを回避する方法はありますか?
let milliSecs = CUnsignedLongLong(elapsedTime * 1000)
または
let milliSecs = UInt64(elapsedTime * 1000)
CUnsignedLongLong
は、標準ライブラリで次のように定義されています:
typealias CUnsignedLongLong = UInt64
したがって、Double
をCUnsignedLongLong
に変換するには、次を使用してCUnsignedLongLong
の新しいインスタンスを作成する必要があります。
CUnsignedLongLong(elapsedTime * 1000)
または
UInt64(elapsedTime * 1000)
Swiftは暗黙的な型変換を許可しません。型のコンストラクターを使用して値を作成します。
let milliSecs = CFUnsignedLongLong(elapsedTime * 1000)