2016-03-01 65 views
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) 
    } 
} 

回答

0

如果您想更新(如果我沒有記錯的話),你可以改變total這樣的:

results.total = YourWantedNumber or results.setValue(YourWantedNumber, forKey: "total") 
context.save() 
+0

這工作得很好,除了元素似乎「自我複製」。每次活動更新時,都會添加具有以下屬性的元素: name = nil; total = 0; – Nils