Cocoa touch 为什么有些委托方法不会自动调用?

Cocoa touch 为什么有些委托方法不会自动调用?,cocoa-touch,Cocoa Touch,为什么有些委托方法不会自动调用?我认为,如果使用委托方法,它将被自动调用。但我发现情况并非如此。例如,在您提到的案例中,没有调用方法didUpdateHeading,因为管理器本身还没有启动。基本上,您的控制器已经在侦听通知,但通知甚至还不存在,因为位置管理器尚未启动。一旦指示经理开始跟踪用户位置,就会调用委托方法 因此,在您的示例中,您将startupdatatingheading调用放在经理启动后将调用的方法中。所以,它永远不会被调用 在您提到的案例中,没有调用方法didUpdateHead

为什么有些委托方法不会自动调用?我认为,如果使用委托方法,它将被自动调用。但我发现情况并非如此。例如,在您提到的案例中,没有调用方法
didUpdateHeading
,因为管理器本身还没有启动。基本上,您的控制器已经在侦听通知,但通知甚至还不存在,因为位置管理器尚未启动。一旦指示经理开始跟踪用户位置,就会调用委托方法


因此,在您的示例中,您将
startupdatatingheading
调用放在经理启动后将调用的方法中。所以,它永远不会被调用

在您提到的案例中,没有调用方法
didUpdateHeading
,因为管理器本身还没有启动。基本上,您的控制器已经在侦听通知,但通知甚至还不存在,因为位置管理器尚未启动。一旦指示经理开始跟踪用户位置,就会调用委托方法


因此,在您的示例中,您将
startupdatatingheading
调用放在经理启动后将调用的方法中。所以,它永远不会被调用

要调用委托方法,需要委托。正如那篇文章的答案所说,代码是在委托方法中设置委托。因此,如果委托设置在一个只在委托存在后运行的方法中,则不会发生任何事情。

要调用委托方法,需要一个委托。正如那篇文章的答案所说,代码是在委托方法中设置委托。因此,如果委托设置在只在委托存在后运行的方法中,则不会发生任何事情