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