【发布时间】:2016-04-21 07:31:22
【问题描述】:
我想在 5 秒内超时并跳出这个循环。我能在网上找到的唯一一件事是每秒增加一个计数变量,然后在计数为 5 时中断,但想知道是否有更简单、更少编码的方法。请帮忙!
locationManager.startUpdatingLocation()
while (locationManager.location == nil) {
//searching...
}
locationManager.stopUpdatingLocation()
【问题讨论】:
-
您可以在进入循环之前测量当前时间,并在每次运行循环时测量一次。将实际值与一开始得到的值进行比较,如果差异大于 5 秒,
break。这只是对您所要求的内容的直接回答。但是,@AlBlue 下面的回答是你应该在 iOS 上做的。 -
...或任何其他阻塞主线程意味着阻塞图形用户界面的系统。
-
没有什么能比得上“更少的编码”。最重要的指标是“正确”和“更易读”。以这种方式完成的无限循环首先是错误的。时间限制不会改善他们。
标签: swift loops time break seconds