我有一个应用程序,可以在后台持续跟踪设备位置.这在ios 11.4中运行良好,我可以在后台运行应用程序几天,同时还在前台做其他事情.
现在使用ios 12,应用程序确实会在设备闲置一段时间后停止运行.
LocationManager初始化如下:
locationManager.delegate = self
locationManager.desiredAccuracy = kCLLocationAccuracyBest;
locationManager.requestWhenInUseAuthorization()
locationManager.startUpdatingLocation()
locationManager.startUpdatingHeading()
locationManager.allowsBackgroundLocationUpdates = false
locationManager.pausesLocationUpdatesAutomatically = false
if #available(iOS 11.0, *)
{
locationManager.showsBackgroundLocationIndicator = true
}
locationManager.distanceFilter = prefs.getDoubleFromString(Prefs.PREF_DISTANCE_FILTER, defaultVal: 2.5)
Run Code Online (Sandbox Code Playgroud)
当用户决定开始跟踪时
locationManager.allowsBackgroundLocationUpdates = true
Run Code Online (Sandbox Code Playgroud)
已设定.
该应用程序具有位置服务的"始终"权限集.
知道ios 12中有什么变化吗?
我的应用程序在后台使用位置服务进行跟踪和地理围栏。
现在使用 iOS 13.2,我每秒都会在控制台中看到以下消息:
Anchorwatch nehelper sent invalid result code [1] for Wi-Fi information request
Run Code Online (Sandbox Code Playgroud)
我的应用程序对 WiFi 系统没有任何作用,当我在设备上禁用 WiFi 时,消息消失。
虽然这条消息似乎没有任何不利影响,但我艰难地了解到忽略消息可能是一个坏主意。
任何人都可以暗示我为什么会出现这条消息以及我可以做些什么来压制它?
使用 PDFKit,我在我的应用程序中创建了一个 pdf 文档。我可以成功地在预览中显示它,并在预览控制器中使用以下代码向用户展示共享操作:
@objc func shareAction(_ sender: UIBarButtonItem)
{
if let data = documentData
{
let vc = UIActivityViewController(activityItems: [data], applicationActivities: [])
present(vc, animated: true, completion: nil
}
}
Run Code Online (Sandbox Code Playgroud)
documentData包含创建的 pdf 文档。
当用户选择“保存到文件”时,文档将获得默认名称“PDF Document.pdf”,用户可以更改该名称。
如何提供不同的默认文件名?