【发布时间】:2011-04-10 17:50:25
【问题描述】:
我们使用调度队列来生成计时器事件。以下是执行该任务的代码:
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() 方法释放计时器。
如果我们在上面的代码中犯了任何错误,有人可以告诉我们吗?此外,如果您能指出任何计时器事件生成的示例,那将会很有帮助。
【问题讨论】:
标签: iphone ios ipad memory-leaks grand-central-dispatch