即使app在后台也能运行一个功能

时间:2017-03-26 14:02:33

标签: swift xcode core-data

我有一个保存功能,可以在特定时间每天将值保存到核心数据中。但是,当应用程序未运行或处于后台时 - 它当然不会保存值。 有没有办法解决这个问题 - 在应用程序在后台运行时保存数据? 这是功能:

  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,对于那些可能想要评论它的人。

1 个答案:

答案 0 :(得分:1)

应用只能在某些very specific situations的后台运行,例如播放音频或处理后台网络连接。您的问题听起来并不适合Apple的任何背景模式,但请查看文档并了解您的想法。

更好的方式(或至少可以在iOS上运行的方式)可能是在您的应用启动时处理此问题。看看是否错过了任何日子,并填写缺失的数据。