0
我正在使用核心数据来存储不同的活动,并跟踪每项活动执行的次数。该实体被称为“活动”,其属性为“名称”和“总数”。当一个活动执行了多次,我想改变属性“总数”(通过加+1),而不是添加一个新的活动。我怎样才能做到这一点?这是到目前为止我的代码:使用核心数据更新特定元素的属性
let appDel = (UIApplication.sharedApplication().delegate as! AppDelegate)
let context: NSManagedObjectContext = appDel.managedObjectContext
let request = NSFetchRequest(entityName: "Activities")
request.returnsObjectsAsFaults = false
request.predicate = NSPredicate(format:"(name == %@)", name)
do {
let results = try context.executeFetchRequest(request) as! [Activities]
if results.count == 0 {
newActivity.setValue(1, forKey: "total")
newActivity.setValue(name), forKey: "name")
do {
try context.save()
}
catch {
print(error)
}
}
}
catch let error as NSError {
print(error)
}
}
这工作得很好,除了元素似乎“自我复制”。每次活动更新时,都会添加具有以下属性的元素: name = nil; total = 0; – Nils