在此处输入图像描述 performanceSelector:onThread 使运行循环退出? 我尝试观察运行循环,当我触摸时,运行循环在完成句柄执行选择器:onThread后退出,计时器停止工作。我听不懂
来自-runMode:beforeDate:
的文档:
运行循环一次[...]
(着重号后加(
也就是说,此方法不会"循环"运行循环。它只是阻塞一次等待一个输入源触发。当此类输入源触发时,该方法将返回。
返回值
是,如果运行循环运行并处理了输入源,或者如果 已达到指定的超时值 [...]
同样,该方法在"运行循环运行并处理输入源或达到指定的超时值"(强调添加(时返回。
[此方法] 在处理第一个输入源或达到 limitDate 后返回。
-performSelector:onThread:...
是作为运行循环源实现的,但这是一个实现细节。通常,除非在自定义模式下运行运行循环,否则不能仅依赖于在运行循环中计划的应用输入源。框架可以在上面安排自己的源代码。因此,您必须为该方法的返回做好准备。
因此,您要么必须循环调用以-runMode:beforeDate:
,直到出现适合您的目的的条件,要么需要对计时器和运行运行循环使用自定义模式。但是,在后一种情况下,您需要为该模式安排自己的输入源,因为仅计时器不足以使运行循环保持运行。