ios - 关于GCD定时器无效
PHPz
PHPz 2017-04-18 09:24:44
0
1
306

在使用GCD定时器时,系统的代码块并不好用

dispatch_queue_t queue = dispatch_get_global_queue(0, 0);
dispatch_source_t timer = dispatch_source_create(DISPATCH_SOURCE_TYPE_TIMER, 0, 0, queue);
dispatch_source_set_timer(timer, DISPATCH_TIME_NOW, 1.0 * NSEC_PER_SEC, 0 * NSEC_PER_SEC);
dispatch_source_set_event_handler(timer, ^{
    NSLog(@"+++++定时器+++++");
});
dispatch_resume(timer);

只有将 dispatch_source_t timer 写成属性handle event才会被调用

@property (nonatomic, strong) dispatch_source_t timer;

dispatch_queue_t queue = dispatch_get_global_queue(0, 0);
_timer = dispatch_source_create(DISPATCH_SOURCE_TYPE_TIMER, 0, 0, queue);
dispatch_source_set_timer(_timer, DISPATCH_TIME_NOW, 1.0 * NSEC_PER_SEC, 0 * NSEC_PER_SEC);
dispatch_source_set_event_handler(_timer, ^{
    NSLog(@"+++++定时器+++++");
});
dispatch_resume(_timer);

这是为什么呢?

PHPz
PHPz

学习是最好的投资!

membalas semua(1)
Ty80

Pengurusan memori... Kerana anda adalah ARC, objek yang anda cipta akan sah dalam skopnya Setelah ia keluar dari skopnya, jika tiada rujukan yang kuat, objek itu akan musnah secara semula jadi boleh menulis sebagai Alasan untuk digunakan.

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan