de-vraag
  • Pertanyaan
  • Tag
  • Pengguna
Notifikasi
Imbalan
Registrasi
Setelah Anda mendaftar, Anda akan diberitahu tentang balasan dan komentar untuk pertanyaan Anda.
Gabung
Jika Anda sudah memiliki akun, masuk untuk memeriksa pemberitahuan baru.
Akan ada hadiah untuk pertanyaan, jawaban, dan komentar tambahan.
Lebih
Sumber
Sunting
Adam Altinkaya
Adam Altinkaya
Question

Perbedaan antara 2 tanggal dalam hitungan detik ios

Saya memiliki sebuah aplikasi di mana konten akan ditampilkan kepada pengguna. Sekarang saya ingin mengetahui berapa banyak detik yang pengguna benar-benar pemandangan yang konten untuk. Jadi dalam file header, I've menyatakan

 NSDate *startTime;
 NSDate *endTime;

Kemudian saya viewWillAppear

 startTime = [NSDate date];

Kemudian saya viewWillDisappear

endTime = [NSDate date];
NSTimeInterval secs = [endTime timeIntervalSinceDate:startTime];
NSLog(@"Seconds --------> %f", secs);

Namun, aplikasi crash, dengan berbagai kesalahan kadang-kadang. Kadang-kadang itu's kebocoran memori, kadang-kadang itu's masalah dengan NSTimeInterval, dan kadang-kadang crash setelah kembali ke konten untuk kedua kalinya.

Ada ide untuk memperbaiki hal ini?

47 2013-11-01T09:59:01+00:00 2
Adam Altinkaya
Adam Altinkaya
Pertanyaan edit 1 November 2013 в 10:34
Pemrograman
ios
nsdate
nstimeinterval
Solution / Answer
 medvedNick
medvedNick
1 November 2013 в 10:44
2013-11-01T10:44:13+00:00
Lebih
Sumber
Sunting
#22686493

karena anda tidak menggunakan ARC, ketika anda menulis

startTime = [NSDate tanggal];

anda tidak mempertahankan startTime, jadi deallocated sebelum -viewWillDisappear disebut. Mencoba

startTime = [[NSDate tanggal] mempertahankan];

Juga, saya sarankan untuk menggunakan BUSUR. Harus ada jauh lebih sedikit kesalahan dengan manajemen memori dengan itu, daripada tanpa itu

13
0
 Lukas
Lukas
1 November 2013 в 10:48
2013-11-01T10:48:02+00:00
Lebih
Sumber
Sunting
#22686494

Anda harus mendeklarasikan properti dengan mempertahankan untuk memulai upload. Kencan anda mendapatkan dirilis sebelum anda dapat menghitung perbedaan waktu.

Jadi menyatakan

@property (nonatomic, retain) NSDate *startDate

- (void)viewWillAppear:(BOOL)animated
{
    [super viewWillAppear:animated];
    [self setStartDate: [NSDate date]];
}

- (void)viewWillDisappear:(BOOL)animated
{
     [super viewWillDisappear:animated];
     NSLog(@"Seconds --------> %f",[[NSDate date] timeIntervalSinceDate: self.startDate]);
}

Don't lupa untuk pembersihan.

- (void)dealloc
{
    [self.startDate release];
    [super dealloc];
}
12
0
Tambahkan pertanyaan
Kategori
Semua
Teknologi
Budaya / Rekreasi
Kehidupan / Seni
Ilmu Pengetahuan
Profesional
Bisnis
Pengguna
Semua
Baru
Populer
1
Asilbek Qadamboyev
Terdaftar 7 jam yang lalu
2
Akshit Mehta
Terdaftar 2 hari yang lalu
3
me you
Terdaftar 6 hari yang lalu
4
Никита иванов
Terdaftar 1 minggu yang lalu
5
Alex1976G_06
Terdaftar 1 minggu yang lalu
ID
KO
RU
© de-vraag 2022
Sumber
stackoverflow.com
di bawah lisensi cc by-sa 3.0 dengan atribusi