我们使用调度队列来生成定时器事件。以下是执行该任务的代码:
dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0); timer = dispatch_source_create(DISPATCH_SOURCE_TYPE_TIMER, 0, 0, queue); if (!timer) 返回自我; dispatch_source_set_timer(timer, dispatch_walltime(NULL, 0), interval * NSEC_PER_SEC, 5 * NSEC_PER_SEC); dispatch_source_set_event_handler(定时器, ^{ //一些工作… });
这工作得很好,除了当我们运行分析器时,我们看到这些方法有很多内存泄漏:
- dispatch_source_create
- dispatch_source_set_timer
- dispatch_source_set_event_handler
我们已确保使用 dispatch_release() 方法释放计时器。
如果我们在上面的代码中犯了任何错误,有人可以告诉我们吗?而且,如果您可以指出任何计时器事件生成的示例,那将会很有帮助。