Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios locationmanager didchangeauthorizationstatus未在后台调用_Ios_Swift_Cllocationmanager - Fatal编程技术网

Ios locationmanager didchangeauthorizationstatus未在后台调用

Ios locationmanager didchangeauthorizationstatus未在后台调用,ios,swift,cllocationmanager,Ios,Swift,Cllocationmanager,当应用程序处于后台时,delegate方法似乎没有通知我。一旦应用程序进入前台,我就会得到didchangearthorizationstatus。是否有其他人在后台成功获取了授权状态 顺便说一句,其他的delegate方法在后台工作,因此我知道我在info.plist中设置了正确的属性,即使它在delegate类中,只有在以下两个都为真时才会调用didChangeAuthorization: 用户更改应用程序位置服务授权状态 应用程序在InUseAuthorization()或request

当应用程序处于后台时,
delegate
方法似乎没有通知我。一旦应用程序进入前台,我就会得到
didchangearthorizationstatus
。是否有其他人在后台成功获取了
授权状态


顺便说一句,其他的
delegate
方法在后台工作,因此我知道我在
info.plist

中设置了正确的属性,即使它在delegate类中,只有在以下两个都为真时才会调用didChangeAuthorization:

  • 用户更改应用程序位置服务授权状态
  • 应用程序在InUseAuthorization()或requestAlwaysAuthorization()时调用RequestWhen

它不会在后台调用,以响应用户在“设置”应用程序中更改设置,更改设置不会导致iOS唤醒您的应用程序。如果用户更改设置,则您的应用程序将停止接收位置更新,直到下一次应用程序位于前台时,它才知道原因。

您遇到了什么问题?你的应用程序不是在后台运行的,那么,为什么你在前台才收到通知很重要呢?这是你的应用程序可以做任何事情的第一刻。马特,我正在后台收集位置更新并记录下来。如果用户关闭了位置,我想记录它。文档中是否有这种行为的证据?我也有同样的观察结果,但不确定这是否是让迪迪开始工作的唯一途径