下面是我的获取请求,适用于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.")
}
}