Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/97.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 将从位置唤醒应用程序后,didFinishLaunchingWithOptions中的LaunchOptions为零_Ios_Swift_Location - Fatal编程技术网

Ios 将从位置唤醒应用程序后,didFinishLaunchingWithOptions中的LaunchOptions为零

Ios 将从位置唤醒应用程序后,didFinishLaunchingWithOptions中的LaunchOptions为零,ios,swift,location,Ios,Swift,Location,我在网上搜索了一下,发现一些人也有同样的问题,但还没有人找到任何解决办法。。。所以我希望这里的任何人都是我要寻找的G 1-我在后台模式下启用了“位置更新”和“后台提取” 2-我确实在正确的位置调用了locationManager.startMonitoringSignificantLocationChanges(),我在终止应用程序后将其唤醒时,在写入并串入Firebase数据库的过程中检查了这一点 3-我正在检查launchOptions中是否有一个位置键,就像他们文档中的Apple一样,请

我在网上搜索了一下,发现一些人也有同样的问题,但还没有人找到任何解决办法。。。所以我希望这里的任何人都是我要寻找的G

1-我在后台模式下启用了“位置更新”和“后台提取”

2-我确实在正确的位置调用了
locationManager.startMonitoringSignificantLocationChanges()
,我在终止应用程序后将其唤醒时,在写入并串入Firebase数据库的过程中检查了这一点

3-我正在检查launchOptions中是否有一个位置键,就像他们文档中的Apple一样,请参阅:

那么为什么我的启动选项为零?我不明白为什么会这样。。。因为应用程序正在被唤醒,所以错误不可能发生在我的locationManager处理上

我在stackoverflow上发现了这个,但是我的启动选项为零,所以代码没有进入if。。。


请帮助。

看起来您没有在数据库中保存更改。
添加日志并检查发生的情况。
如果使用密码锁定设备,则可以锁定数据库文件。当
位置发生显著变化时,也会发生这种情况。我希望它能帮助你-

另外,对于
startMonitoringSignificantLocationChanges()
您不需要启用“位置更新”,它需要
startUpdatingLocation()

UPD:

如果您启动此服务并随后终止您的应用程序,则 如果出现新的应用程序,系统会自动将其重新启动到后台 活动开始了。在这种情况下,选项字典将传递给 应用程序(:willFinishLaunchingWithOptions:)和 应用程序(:didFinishLaunchingWithOptions:)的方法 委托包含用于指示您的应用程序已启动的密钥位置 由于位置事件而启动。重新启动后,您仍必须 配置位置管理器对象并调用此方法以继续 接收位置事件。当您重新启动位置服务时 当前事件将立即传递给您的代理。此外 将填充location manager对象的location属性 在开始定位之前使用最近的位置对象 服务


位置应该在您的启动选项中,我建议只在控制台中打印启动选项。并使用(可从XCode->Devices->{your device}查看),显示哪些键

谢谢,但我不知道你的意思,写入数据库工作得很好,只是当应用程序被唤醒进入后台模式时没有设置locationKey。我确实读过,如果启用了位置更新的后台模式复选框,那么这个键只会在字典中。如果我误解了什么,请告诉我。我在数据库中输入“wokeUp”的第一行正在运行。只有“如果”(我想在其中创建包含所有键的列表)失败,因为“启动选项”中没有键。@alarsut我建议只在控制台中打印“启动选项”。查看(可从XCode->Devices->{your device}查看),有哪些键?请与我联系好吗?只要用你的skypename或任何你拥有的东西给我写封电子邮件到KochhilFeatureCloudDotcom就行了。我不知道该怎么做。日志未显示,启动选项为零。我将添加解决方案,如果我们得到一个,在我的帖子下,更新标记为…嗨,你找到解决方案了吗?我在@aledap I notised遇到了同样的问题,我的应用程序在移动时是从后台启动的,因此它确实可以工作,但我的启动选项始终为空,因此我使用用户默认值保存了一个值,通过启动,我检查该值是否为真,并根据该值运行一些代码,但这只起作用,因为我只有一个原因为什么它从后台启动,如果你有不止一个原因,那么就很难知道为什么应用程序已经启动了。。。