运行Xcode 10.0,我实现了后台抓取。
要测试其行为,我有一个变量
let isForeground = UIApplication.shared.applicationState == .active
,由后台提取触发的方法将如下检查其值:
func fetchAll(completionHandler: @escaping (UIBackgroundFetchResult) -> Void) {
if (!isForeground){
...
}
completionHandler(.noData)
}
毫不奇怪,当我选择“调试>模拟背景提取”
isForeground
总是返回
false
但是,在我的设备上进行“模拟后台提取”会将应用程序发送到后台,而在Simulator上这样做会将应用程序保持在前台。
后者是错误的行为/错误,还是我应该以某种方式在代码中保留isForeground检查以处理在我的应用程序处于前台时执行后台获取的情况?