更新核心数据对象 swift 3

2023-12-27

我想更新 swift 3 中的核心数据对象。经过一番谷歌搜索后,我没有找到任何有关 swift 3 的信息。 所以我的问题是:如何更新 swift 3 中的核心数据对象?


使用带有谓词的获取请求来获取现有值。在谓词中使用唯一值。获取对象后,使用新值更新对象并保存上下文。

let empId = "001"
let fetchRequest:NSFetchRequest<NSFetchRequestResult> = NSFetchRequest.init(entityName: "EmpDetails")
let predicate = NSPredicate(format: "empId = '\(empId)'")
fetchRequest.predicate = predicate
do {
    let result = try persistentContainer.viewContext.fetch(fetchRequest)
    if let objectToUpdate = result.first as? NSManagedObject {
        objectToUpdate.setValue("newName", forKey: "name")
        objectToUpdate.setValue("newDepartment", forKey: "department")
        objectToUpdate.setValue("001", forKey: "empID")
        try persistentContainer.viewContext.save()
    }
} catch {
    print(error)
}

使用 NSManagedObject 子类

let empId = "001"
let fetchRequest: NSFetchRequest<Employee> = Employee.fetchRequest()
fetchRequest.predicate = NSPredicate(format: "%K = %@", #keyPath(Employee.id), empId)
do {
  let results = try persistentContainer.viewContext.fetch(fetchRequest)
  if let employee = results.first {
    employee.name = "new name"
    employee.department = "new department"
  }
  try persistentContainer.viewContext.save()
} catch let error as NSError {
  print(error.localizedDescription)
}

批量更新

批量更新有助于更新多个 Core Data 对象,而无需 将任何内容读取到内存中。

let batchUpdate = NSBatchUpdateRequest(entityName: "Employee")
batchUpdate.propertiesToUpdate = [#keyPath(Employee.isActive): true]
batchUpdate.affectedStores = persistentContainer.viewContext.persistentStoreCoordinator?.persistentStores
batchUpdate.resultType = .updatedObjectsCountResultType
do {
  let batchResult =  try coreDataStack.managedContext.execute(batchUpdate) as? NSBatchUpdateResult
  print(batchResult?.result)
} catch let error as NSError {
  print(error.localizedDescription)
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

更新核心数据对象 swift 3 的相关文章

随机推荐

  • pydev notests 测试运行

    似乎是一个愚蠢的问题 但我一直无法弄清楚 我想使用 eclipse pyunit 来运行我的所有测试 我已将测试运行程序配置为鼻子测试运行程序 现在我想让 pyunit 使用鼻子 您可以右键单击文件夹 文件 然后选择 运行为 gt Pyth
  • Redux 动机:突变和异步性示例

    为了理解 Redux 的动机 我阅读了官方链接https redux js org introduction motivation https redux js org introduction motivation以及这个 stackov
  • Android CMake 使用预构建 .a 库

    我对 CMake 完全陌生 并且共同使用 NDK 我想办法编写 JNI 接口并使用 2 个属于 C 库一部分的方法 我将此库编译为静态库并获得了 a 文件 现在我有点迷失了 因为我不明白如何告诉 Android Studio 在尝试查找被调
  • 使用内联 Rcpp 从全局环境中读取变量?

    我按照 Rcpp 介绍 Vignette 中的示例 尝试使用内联 f lt cxxfunction signature plugin Rcpp body Environment global Environment global env s
  • Node.js 和 Amazon S3:如何迭代存储桶中的所有文件?

    是否有适用于 Node js 的 Amazon S3 客户端库允许列出 S3 存储桶中的所有文件 最广为人知的aws2js https github com SaltwaterC aws2js and knox https github c
  • 为什么 Bootstrap 5.2.1 在分页 Datatable 时会导致模态隐藏?

    我有一个数据表 https datatables net 在 bootstrap v5 2 1 模式中 当我打开模式并尝试翻阅数据时 模式会立即隐藏自身 bootstrap v5 2 0 不会出现这种情况 为什么会发生这种情况 引导模式中数
  • 如何访问存储在 Hash 中的数据

    我有这个代码 coder JSON XS gt new gt utf8 gt pretty gt allow nonref perl coder gt decode json 当我写作时print perl变量显示为 HASH 0x9e04
  • 在 OCaml 中编译并运行

    我是 OCaml 新手 我想知道如何将 ocaml 代码写入文件 然后编译它以在需要时运行它 现在我通过输入使用 OCamlocaml在 Mac 或 Linux 终端中并编写代码 但是当我完成并关闭软件时 我会丢失所有工作 有很多选择 但最
  • Crystal reports 11:如何处理或修剪特殊字符

    在我的水晶报告中 我注意到从表中提取的其中一个字段具有特殊字符 更具体地说 回车符和制表符 有没有办法去掉它 这样它就不会在我的报告中显示为空白 提前致谢 这应该可以做到 stringvar output TABLE NAME FIELD
  • Pytorch:如何找到 2D 张量的每一行中第一个非零元素的索引?

    我有一个二维张量 每行都有一些非零元素 如下所示 import torch tmp torch tensor 0 0 1 0 1 0 0 0 0 0 1 1 0 0 dtype torch float 我想要一个包含每行中第一个非零元素索引
  • 无法将 类型的对象转换为 JMS 消息。支持的消息有效负载有:字符串、字节数组、Map、可序列化对象

    我正在开发Spring ActiveMQ JMS例子 在此示例中 我面临以下错误 我尝试了许多选项 但根本不起作用 我希望实现以下目标 1 队列应该不断读取消息 使用转换器或监听器 2 根据InstructionMessage类型 我必须决
  • 添加多列全文索引失败,出现 1062 重复条目

    我正在尝试将全文索引添加到 MySQL 中的现有表中 我可以成功地在此表上添加单列全文索引 但是如果我尝试添加多列索引 则会失败 我想添加一个多列全文索引 以便能够在 SELECT 查询中跨多个列进行搜索 架构如下 CREATE TABLE
  • 如何在 Java 8 中将方法作为参数传递?

    我不明白如何使用 lambda 来传递方法作为参数 考虑以下 未编译 代码 我怎样才能完成它以使其工作 public class DumbTest public class Stuff public String getA return a
  • 如何更正 Subversion 项目中省略主干的地方?

    我有一个颠覆项目 名为 inboundem 这是我的第一个 当我创建它时 我省略了 trunk 我需要将其放入正确的结构中 如 inboundem trunk 我有另一个类似的项目 但由于没有修改 所以我做了svn delete进而svn
  • 使用 LINQ 查询对内部中继器进行排序

    我试图列出一组关联 每个关联内都有一个分配给该关联的 小部件 该列表将包括关联名称和分配给它的任何小部件 问题是内部小部件列表需要按 DisplaySequence 排序 EDMX Model Below 简化的中继器标记
  • 在 xml 属性之间保留新行 C#

    我有一个由用户输入的 XML 我必须向其中添加一些属性 然后将更改后的 XML 作为字符串返回 现在的问题是 它忽略属性之间的退格键 这是我正在谈论的一个例子 我得到的XML
  • Java 安全类强制转换异常

    您好 我是 Java 安全初学者 在调用时遇到以下问题 Cipher cipher Cipher getInstance RSA ECB PKCS1Padding 我收到错误 java lang ClassCastException com
  • 何时使用静态字符串与#define

    我对什么时候最好使用有点困惑 static NSString AppQuitGracefullyKey AppQuitGracefully 代替 define AppQuitGracefullyKey AppQuitGracefully 我
  • 什么是高级模块和低级模块?

    我知道这是以下链接的完全相同的副本 什么是 高级模块 和 低级模块 在依赖倒置原则的背景下 https stackoverflow com questions 3780388 what are high level modules and
  • 更新核心数据对象 swift 3

    我想更新 swift 3 中的核心数据对象 经过一番谷歌搜索后 我没有找到任何有关 swift 3 的信息 所以我的问题是 如何更新 swift 3 中的核心数据对象 使用带有谓词的获取请求来获取现有值 在谓词中使用唯一值 获取对象后 使用