我有一个保存功能,可以在特定时间每天将值保存到核心数据中。但是,当应用程序未运行或处于后台时 - 它当然不会保存值。 有没有办法解决这个问题 - 在应用程序在后台运行时保存数据? 这是功能:
func addValueDateToCore() {
// make sure data is not saved twice
if hasBeen == 0 {
hasBeen += 1
let newData: SavedAwayData = NSEntityDescription.insertNewObject(forEntityName: "SavedAwayData", into: DatabaseController.getContext()) as! SavedAwayData
let dateFormatter = DateFormatter()
dateFormatter.dateStyle = .medium
dateFormatter.timeStyle = .none
newData.name = dateFormatter.string(from: Date())
newData.greenCustomer2 = veryHappyCustomer
newData.orangeCustomer2 = happyCustomer
newData.redCustomer2 = unHappyCustomer
DatabaseController.saveContext()
}
}
在addValueDateToCore()之后几秒钟,hasBeen变量被另一个函数变为0,对于那些可能想要评论它的人。
答案 0 :(得分:1)
应用只能在某些very specific situations的后台运行,例如播放音频或处理后台网络连接。您的问题听起来并不适合Apple的任何背景模式,但请查看文档并了解您的想法。
更好的方式(或至少可以在iOS上运行的方式)可能是在您的应用启动时处理此问题。看看是否错过了任何日子,并填写缺失的数据。