我有一个裸单视图 iOS 应用程序,在-viewDidLoad
视图中包含以下内容:
dispatch_queue_t q_default;
q_default = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);
dispatch_source_t timer = dispatch_source_create(DISPATCH_SOURCE_TYPE_TIMER, 0, 0, q_default); //run event handler on the default global queue
dispatch_time_t now = dispatch_walltime(DISPATCH_TIME_NOW, 0);
dispatch_source_set_timer(timer, now, 30ull*NSEC_PER_SEC, 5000ull);
dispatch_source_set_event_handler(timer, ^{
printf("test\n");
});
dispatch_resume(timer);
这直接取自文档(简化的printf()
参数除外)。该块永远不会被执行——有人能告诉我为什么吗?
附加信息
我在一个更大的应用程序中尝试这个无济于事。然后我退出准系统应用程序,尝试打开和关闭 ARC,在 中尝试了这段代码-appDidFinishLaunching...
,但都没有运气。我可以用 s 包围这段代码NSLog
,这两个都被打印出来了。我查过了timer
——不是nil
。