swift - 使用核心数据更新特定元素的属性

标签 swift core-data

我正在使用核心数据来存储不同的事件并跟踪每个事件已执行的次数。该实体称为“事件”,具有“名称”和“总计”属性。当一项事件执行多次时,我想更改该特定事件的“总计”属性(通过添加+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)
    }
}

最佳答案

如果你想更新(如果我没记错的话),你可以像这样更改total:

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

关于swift - 使用核心数据更新特定元素的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35725650/

相关文章:

ios - Xcode 7 和基于 swift 的框架

ios - 如何根据 API 类型发送带有 BODY 的 POST 或 GET 请求

objective-c - 检查 id isKindOfType CFType

iphone - 如何创建一个 NSFetchRequest 来请求具有特定名字的对象?

core-data - iCloud Core Data 在 Xcode 6/ios 8 SDK 中运行后不可用

ios - 核心数据撤消/重做 - 操作取决于撤消的内容

swift - NSAttributedString 和表情符号 : issue with positions and lengths

ios - 以编程方式位于底部的按钮

ios - 界面生成器仅向 TextField 元素添加底部边框

iphone - 从 NSManagedObject 引用磁盘上的文件