Swift ios date de millisecondes Double ou UInt64?
Je ne suis pas développeur iOS mais a commencé à apprendre Swift.
J'essaie de convertir une logique de projet Android à iOS
J'ai méthode suivante:
func addGroupItemSample(sample : WmGroupItemSample){ //some custom class
var seconds: NSTimeInterval = NSDate().timeIntervalSince1970
var cuttDate:Double = seconds*1000;
var sampleDate: UInt64 = sample.getStartDate(); //<-- problematic place
if(sampleDate > cuttDate){
//....
}
}
De méthode ci-dessus vous pouvez voir que sample.getStartDate()
renvoie type UInt64
.
Je pensais que sa comme long
en Java: System.currentTimeMillis()
Mais à l'heure actuelle en millisecondes défini comme Double
.
Est-il bon moyen de mélanger Double
et UInt64
, ou dois-je représenter toutes les millisecondes Double
seulement?
Merci,
OriginalL'auteur snaggs | 2014-08-12
Vous devez vous connecter pour publier un commentaire.
Swift ne permettent pas de comparer les différents types.
seconds
est unDouble
valeur à virgule flottante en quelques secondes avec des sous-précision d'une seconde.sampleDate
est un UInt64 mais les unités ne sont pas donnés.sampleDate
doit être converti enDouble
valeur à virgule flottante avec les unités de secondes.Ensuite, ils peuvent être comparés:
UInt64
comme le nombre de millisecondes?OriginalL'auteur zaph
dans iOS, il est préférable d'utiliser des doubles, mais si vous voulez facile de port de votre code et de le garder cohérente, vous pouvez essayer ceci:
Mon erreur, j'ai mis à jour le code merci
La Variable 'nowDouble" n'a jamais été muté; envisager de changer de "let' constantes
Changé, merci!
OriginalL'auteur Ben
Voici une version alternative, pour Swift 3:
OriginalL'auteur RenniePet
OriginalL'auteur Softlabsindia