gpt4 book ai didi

iphone - setDelegate :self, 它是如何工作的?

转载 作者:行者123 更新时间:2023-12-03 20:29:27 24 4
gpt4 key购买 nike

我对代表如何工作有疑问。我的理解是委托(delegate)负责代表另一个对象执行某些任务。

locationManager = [[CLLocationManager alloc] init]; 
[locationManager setDelegate:self];
[locationManager setDistanceFilter:kCLDistanceFilterNone];
[locationManager setDesiredAccuracy:kCLLocationAccuracyBest];
[locationManager startUpdatingLocation];

我是否正确地认为,在上面的示例代码中,CLLocationManager 的实例是在新线程上创建的,以便它可以继续尝试查找所需的位置信息。当它完成任务(或遇到错误)时,它会使用位于 self 中的适当方法进行回调,例如

locationManager:didUpdateToLocation:fromLocation:

本质上,当事情发生时,locationManager 会向 self 发送消息(符合正确的委托(delegate)协议(protocol))

干杯加里

最佳答案

这基本上是正确的。

the instance of CLLocationManager is created on a new thread

不,该实例是在您调用它的线程上创建的。您没有发布与线程相关的代码。当然,位置管理器会避免在工作时阻塞线程。这可能在内部使用后台线程,但您不知道或不关心。

locationManager sends messages to self (which conforms to the correct delegate protocol) when things happen

是的。

关于iphone - setDelegate :self, 它是如何工作的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2907162/

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