2017-05-13 3 views
-2

Si je dois enregistrer la valeur de DispatchTime.now() pour y accéder en dehors de la fonction dans laquelle elle a été appelée, quel est le type de variable? Edit: le type de variable est DispatchTime mais je ne vois aucun moyen de sauvegarder cette valeur en tant que variable afin que je puisse la passer à un autre contrôleur de vue dans prepare (pour segue) ou l'utiliser à travers les fonctions.Swift - Type de variable renvoyé par DispatchTime.now()

var t = DispatchTime [nom de membre attendu ou un appel constructeur après le nom du type]

var t = DispatchTime() [argument manquant pour le paramètre 'uptimeNanoseconds' dans l'appel]

var t = DispatchTime.self (pas d'erreur, mais lorsque vous essayez plus tard t = DispatchTime.now() [Impossible d'affecter une valeur de type 'DispatchTime' à type 'DispatchTime.Type'])

+0

DipatchTime sera de type variable. –

+0

Option cliquez sur une variable dans Xcode pour voir son temps déduit. Commande cliquez sur un type/méthode/fonction/propriété pour voir sa déclaration. – Alexander

Répondre

0

Vous pouvez stocker DispatchTime en tant que variable. Toutefois, si vous avez besoin de stocker quelque part en dehors de la mémoire (certains cache, etc.) de l'application que vous devriez jeter un oeil à cette propriété de DispatchTime:

public let rawValue: dispatch_time_t 

C'est sa valeur brute en nanosecondes. De la documentation (https://developer.apple.com/reference/dispatch/dispatch_time_t) vous pouvez voir que c'est de type UInt64. Et pour tout faire encore mieux, vous pouvez initialiser DispatchTime avec cette méthode:

DispatchTime(uptimeNanoseconds: <UInt64>) 

De cette façon, vous pouvez stocker la valeur brute de votre DispatchTime partout où vous voulez.

-2

J'ai trouvé comment faire cela, mais je n'utilise plus DispatchTime dans mon projet.

peut définir la variable comme ceci: var t = DispatchTime(uptimeNanoseconds: 0)

Et puis remplir plus tard la variable avec l'heure actuelle: t = DispatchTime.now()

Cette méthode ne me donnait pas un nombre correct de secondes lorsque vous essayez d'utiliser:

let nanoTime = endingTime.uptimeNanoseconds - startTime.uptimeNanoseconds 
let timeInterval = Double(nanoTime)/1_000_000_000 

Je suis plutôt retourné à l'aide CFAbsoluteTime() les variables et la mise en valeur à leur CFAbsoluteTimeGetCurrent() lors du démarrage et d'arrêt.

De cette façon totalTime = endTime - startTime me donne le nombre exact de secondes

+0

Hey, j'ai essayé de supprimer cette question, mais il m'a averti de ne pas ... Quel est le meilleur plan d'action lorsque vous avez écrit une mauvaise question? Je pensais laisser une réponse pour expliquer ma pensée, mais cela s'est également avéré impopulaire. Je supprimerais la question si je pouvais car je ne vois pas la valeur ici pour les futurs lecteurs. – RanLearns