我正在构建一个可识别位置的应用,并在用户接近某个点时触发文本到语音。我有单例类GPSManager
(用于获取位置更新)和RouteDetails
(用于定义应触发文本到语音的点)。我还有一个视图控制器,可以显示一个地图,从GPSManager
更新用户的位置,并显示RouteDetails
的路线。
我想要做的是在应用暂停时保持视图控制器的功能运行,即在更新位置时通知,将其与RouteDetails
中的位置进行比较,然后播放文本 - 语音。但是,我似乎无法找到这样做的好例子 - 我如何确保RouteDetails
和GPSManager
留在记忆中?我应该在哪里放置文本到语音模块,它可以访问RouteDetails
中的详细信息,也可以在内存中,以便在应用程序暂停和手机锁定时可以播放?我假设视图控制器在应用程序暂停时无法接收通知。
此外,我已将location
和audio
选项添加到Info.plist文件中的UIBackgroundModes
键。当我获得位置更新/播放声音时,我不需要应用程序将自己带回前台,它只需播放声音并更新RouteDetails
中的变量。