【发布时间】:2015-06-08 16:49:22
【问题描述】:
在我的故事板上,我设置了一个计时器(每 0.01 秒更新一次)和一个 UIMapView,它在加载视图控制器时显示用户的位置。但是,当此屏幕加载时,计时器会延迟一段时间,直到地图完全加载。我认为这是因为地图的加载是在主线程上执行的阻塞函数。
有没有办法在后台加载地图并在完全加载后显示它,同时仍然保持计时器运行?
【问题讨论】:
在我的故事板上,我设置了一个计时器(每 0.01 秒更新一次)和一个 UIMapView,它在加载视图控制器时显示用户的位置。但是,当此屏幕加载时,计时器会延迟一段时间,直到地图完全加载。我认为这是因为地图的加载是在主线程上执行的阻塞函数。
有没有办法在后台加载地图并在完全加载后显示它,同时仍然保持计时器运行?
【问题讨论】:
可能不会。地图视图是视图对象,视图对象不是线程安全的。
请注意,Apple 在 NSTimer 上的文档说:
定时器不是实时机制;它仅在其中一个时触发 已添加计时器的运行循环模式正在运行并且能够 检查计时器的触发时间是否已过。由于各种 典型的运行循环管理的输入源,有效分辨率 计时器的时间间隔限制在 50-100 左右 毫秒。
50 毫秒是 0.02 秒。 100 毫秒是 0.04。因此,您不太可能获得所需的准确性。
【讨论】: