Swift 3中的共享核心数据获取请求

时间:2016-09-06 12:03:51

标签: ios core-data swift3

下面是我的获取请求,适用于Swift 3构建没有错误。我在我的应用程序的5-10个其他地方有非常类似的提取操作,但是对于不同的实体,添加了排序描述符和谓词。

我对核心数据的原始理解并不是很好。我观看了WWDC核心数据,讨论了Swift 3如何改变一些上下文和获取规则。

我的问题是,感谢Swift 3,我现在可以缩短它或删除它的一部分与其他提取物共享吗?或者甚至现在可以一次又一次地摆脱调用新的上下文,并在应用程序开始时只执行一次?

func coreDataCall (statToSave: Int) {
    let appDelegate = UIApplication.shared.delegate as! AppDelegate
    let managedContext = appDelegate.managedObjectContext!
    let entity =  NSEntityDescription.entity(forEntityName: "Stats", in: managedContext)
    let fetchRequest = NSFetchRequest<NSFetchRequestResult>(entityName: "Stats")
    do {
        let fetchedResults = try managedContext.fetch(fetchRequest) as? [NSManagedObject]
        if let results = fetchedResults {
            newContext = results
        }
    } catch { 
        print(error)  
    }
    let task = NSManagedObject(entity: entity!, insertInto: managedContext)
    let lastUsed = calendar.date(byAdding: .day, value: 7, to: nextDayChange)
    task.setValue(lastUsed, forKey: "date")
    task.setValue(statToSave, forKey: "percentComp")
    newContext.insert(task, at: 0)
    do {
        try managedContext.save()
    } catch _ {
        print("Stat did not save.")
    }
}

0 个答案:

没有答案