我在类(myClass)中有一个方法(myMethod),它利用CLLocationManager来启动监视有意义的位置变换()。 MyClass是CLLocationManager的委托,我已经实现了didUpdateToLocation()方法。
我想要做的是从myMethod中调用startMonitoringSignificantLocationChanges(),然后调用didUpdateToLocation()并完成后我想继续在myMethod中工作。这可能吗?
答案 0 :(得分:7)
我不会说这是不可能的,但我强烈建议您接受其工作方式的异步性,并找到另一种方法来做您正在尝试做的事情。就像将myMethod
分成“之前”和“之后”部分一样,让你的代表触发“之后”。这是Cocoa / iOS中一个非常常见的模式,从长远来看,你会更乐意不与框架作斗争。
如果myMethod
是在主线程上运行的东西,则尤其为true,因为在等待位置更新时阻止该线程将锁定整个UI。花太长时间,系统会杀死你的应用程序。
答案 1 :(得分:1)
不,不是,但你不需要那样。获得所需数据后,只需在didUpdateToLocation中继续使用您的功能。