J'ai utilisé les éléments suivants dans 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);
Dans mon Swift que j'ai en ce moment:
let currentTime: Double = CFAbsoluteTimeGetCurrent()
let elapsedTime: Double = currentTime - startTime
let milliSecs: CUnsignedLongLong = elapsedTime * 1000
Cependant, j'obtiens l'erreur qu'un double
ne peut pas être converti en CUnsignedLongLong
ce qui est logique. Existe-t-il un moyen de le lancer comme dans Objective-C? Y a-t-il un moyen de contourner ceci?
Existe-t-il un moyen de le lancer comme dans l'objectif C? Y a-t-il un moyen de contourner ceci?
let milliSecs = CUnsignedLongLong(elapsedTime * 1000)
Ou
let milliSecs = UInt64(elapsedTime * 1000)
CUnsignedLongLong
est défini dans la bibliothèque standard par:
typealias CUnsignedLongLong = UInt64
Donc, pour convertir un Double
en CUnsignedLongLong
, vous devez créer une nouvelle instance de CUnsignedLongLong
en utilisant
CUnsignedLongLong(elapsedTime * 1000)
ou
UInt64(elapsedTime * 1000)
Swift ne permet pas la conversion de type implicite. Créez la valeur en utilisant le constructeur pour son type.
let milliSecs = CFUnsignedLongLong(elapsedTime * 1000)