Différence entre 2 dates dans les secondes ios
J'ai une application où le contenu est affiché à l'utilisateur. Maintenant, je veux savoir combien de secondes un utilisateur de vues de contenu pour. Donc dans mon fichier d'en-tête, j'ai déclaré un
NSDate *startTime;
NSDate *endTime;
Ensuite dans mon viewWillAppear
startTime = [NSDate date];
Ensuite dans mon viewWillDisappear
endTime = [NSDate date];
NSTimeInterval secs = [endTime timeIntervalSinceDate:startTime];
NSLog(@"Seconds --------> %f", secs);
Toutefois, l'application se bloque, avec les différentes erreurs parfois. Parfois, c'est une fuite de mémoire, c'est parfois un problème avec le NSTimeInterval, et parfois il se bloque après le retour au contenu pour une deuxième fois.
Des idées pour résoudre ce problème?
- Poste le rapport de crash.
- J'ai modifié le code comme ci-dessus... Le journal j'ai parfois est: -[__NSCFType timeIntervalSinceReferenceDate]: unrecognized sélecteur envoyé à l'instance 0xbbf7c10'
- êtes-vous à l'aide de l'ARC?
- N'utilisant pas l'ARC, j'ai essayé de les libérer dans le dealloc méthode et dans le viewWillDisappear, mais toujours obtenir le même problème?
Vous devez vous connecter pour publier un commentaire.
puisque vous n'êtes pas à l'aide de l'ARC, quand vous écrivez
startTime = [NSDate date];
vous ne conservent pas
startTime
, de sorte qu'il est libéré avant-viewWillDisappear
est appelé. EssayezstartTime = [[NSDate date] retain];
Aussi, je recommande d'utiliser l'ARC. Il devrait y avoir beaucoup moins d'erreurs avec la gestion de la mémoire avec elle, que sans elle
Vous devez déclarer une propriété à retenir pour la date de début. Votre date est libérée avant, vous pouvez calculer la différence de temps.
Déclare
N'oubliez pas de nettoyage.