秒単位の2つの日付の違い ios
ユーザーにコンテンツを表示するアプリがあります。私は、ユーザーが実際にそのコンテンツを何秒間閲覧したかを調べたいと思います。だから、私のヘッダーファイルで、I'veを宣言しました。
NSDate *startTime;
NSDate *endTime;
そして、viewWillAppearで
startTime = [NSDate date];
次に、私のビューでWillDisappearが表示されます。
endTime = [NSDate date];
NSTimeInterval secs = [endTime timeIntervalSinceDate:startTime];
NSLog(@"Seconds --------> %f", secs);
しかし、アプリはクラッシュし、時々異なるエラーが発生します。あるときはメモリリーク、あるときはNSTimeIntervalの問題、そしてあるときは2回目にコンテンツに戻った後にクラッシュします。
これを修正するために何かアイデアはありますか?
47
2
と書くと、ARCを使用していないので
スタートタイム = [NSDateの日付];`と書くと
と書くと、
startTime
を保持しないので、-viewWillDisappear
が呼び出される前に、startTime
は解放されます。試すstartTime = [[NSDateの日付]] retain];`.
また、ARCを使用することをお勧めします。メモリ管理に関するエラーは、ARCを使わない場合よりもずっと少なくなるはずです。
開始日をretainしたプロパティを宣言する必要があります。時差を計算する前に、日付が解放されてしまいます。
そこで、次のように宣言します。
クリーンアップを忘れずに。