GMSGeocoder 在 Notification service extension iOS 中给出 Thread 5: EXC_BAD_ACCESS (code=1, address=0x0)
GMSGeocoder gives Thread 5: EXC_BAD_ACCESS (code=1, address=0x0) in Notification service extension iOS
我想使用反向地理编码从我的通知服务扩展中的位置坐标获取地址。
但包括这段代码。
GMSGeocoder().reverseGeocodeCoordinate(self.getLastSavedLocation().coordinate) { response, error in }
使应用程序崩溃(如附图所示)
删除此代码可以正常运行该应用程序。我无法弄清楚我做错了什么。同样的代码在应用程序中正常工作,但在通知扩展中崩溃,我尝试使用 Apple 的反向地理编码器,它在扩展时也能正常工作,但 GMSGeocoder 崩溃了。请让我知道如何解决它。
所以,我联系了 Apple 技术支持,他们澄清了我的问题。
这是他们告诉我的,
如果您查看崩溃的线程,当您尝试
从 EAGLContext 初始化 OpenGL:
https://developer.apple.com/documentation/opengles/eaglcontext?language=objc
这里的问题是您无法“从后台”访问图形硬件:
...对于 NSE,这意味着您根本无法使用它们。笔记
虽然 OpenGL 已被弃用,但这实际上并不重要。
如果他们使用金属,也会发生同样的崩溃。我们的低
我们不能在 NSE 中使用关卡图形 APIs。
所以解决方案是使用Google的地理编码API(但它不是免费使用的)。
https://developers.google.com/maps/documentation/geocoding/overview#ReverseGeocoding
我想使用反向地理编码从我的通知服务扩展中的位置坐标获取地址。
但包括这段代码。
GMSGeocoder().reverseGeocodeCoordinate(self.getLastSavedLocation().coordinate) { response, error in }
使应用程序崩溃(如附图所示)
删除此代码可以正常运行该应用程序。我无法弄清楚我做错了什么。同样的代码在应用程序中正常工作,但在通知扩展中崩溃,我尝试使用 Apple 的反向地理编码器,它在扩展时也能正常工作,但 GMSGeocoder 崩溃了。请让我知道如何解决它。
所以,我联系了 Apple 技术支持,他们澄清了我的问题。
这是他们告诉我的,
如果您查看崩溃的线程,当您尝试 从 EAGLContext 初始化 OpenGL:
https://developer.apple.com/documentation/opengles/eaglcontext?language=objc
这里的问题是您无法“从后台”访问图形硬件:
...对于 NSE,这意味着您根本无法使用它们。笔记 虽然 OpenGL 已被弃用,但这实际上并不重要。 如果他们使用金属,也会发生同样的崩溃。我们的低 我们不能在 NSE 中使用关卡图形 APIs。
所以解决方案是使用Google的地理编码API(但它不是免费使用的)。 https://developers.google.com/maps/documentation/geocoding/overview#ReverseGeocoding