gpt4 book ai didi

objective-c - 如何等待特定方法在另一个方法中完成?

转载 作者:行者123 更新时间:2023-11-28 18:07:27 25 4
gpt4 key购买 nike

我在一个类 (myClass) 中有一个方法 (myMethod),它利用 CLLocationManager 来 startMonitoringSignificantLocationChanges()。 MyClass 是 CLLocationManager 的委托(delegate),我已经实现了 didUpdateToLocation() 方法。

我想做的是从 myMethod 中调用 startMonitoringSignificantLocationChanges(),然后在调用并完成 didUpdateToLocation() 后我想继续在 myMethod 中工作。这可能吗?

最佳答案

我不会说这是不可能的,但我强烈建议您接受其工作原理的异步性质,并找到另一种方法来完成您想要做的事情。就像将 myMethod 分成“之前”和“之后”部分,让您的委托(delegate)触发“之后”。这是 Cocoa/iOS 中非常常见的模式,从长远来看,您会更快乐,而不是与框架作斗争。

如果 myMethod 是在主线程上运行的东西,这尤其是是正确的,因为在等待位置更新时阻塞该线程将锁定您的整个 UI。时间过长,系统会终止您的应用。

关于objective-c - 如何等待特定方法在另一个方法中完成?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9263157/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com