保存单个核心数据实体(而不是整个上下文),同时保留 NSFetchedResultsController 功能

2024-02-16

唷,抱歉标题太长了。

我有一个托管对象上下文,其中存储来自两个不同位置的歌曲。我从手机上的持久存储中获取一些歌曲(使用 Core Data),并从在线数据库中提取一些歌曲。这两首歌曲都属于同一 ManagedObject 子类。我希望这两首歌都在一个上下文中,因为我希望它们都显示在与 NSFetchedResultsController 连接的表视图上。

当我想保存其中一首歌曲时,就会出现问题。我不想将从在线数据库中提取的所有歌曲保存到手机中。我只想保存单首歌曲,所以简单的 [moc save] 不起作用。另一个问题是,在我保存单首歌曲后,我仍然希望从网上提取的歌曲位于上下文中(但同样,不保存)。我相信我有几个不同的选择:

1)是否可以将 NSFetchedResults 控制器连接到多个上下文?

2)我可以将从在线数据库中提取的所有歌曲移至单独的临时上下文中,保存在原始上下文中,然后将所有歌曲移回。 (看:如何将 NSManagedObject 从一个上下文复制或移动到另一个上下文? https://stackoverflow.com/questions/2998613/how-do-i-copy-or-move-an-nsmanagedobject-from-one-context-to-another)

3)记住所有在线歌曲的键值对,从上下文中删除在线歌曲,保存原始上下文,根据保存的键值对将所有在线歌曲插入到原始上下文中。

4)我是个大菜鸟,缺少一些更简单的东西。

Thanks!


我认为最简单的事情就是再做一次NSPersistentStore附加到您的持久存储协调员。您可以将该存储作为内存存储,并将所有“在线”结果存储在该(临时)存储中。您可以指定新插入的对象应保存在哪个存储中assignObject:toPersistentStore:。完成此操作后,您可以自由保存,因为“保存”只会发生在您的在线歌曲的内存中。

然后,当您想要将歌曲从在线集移动到永久集时,只需删除它并重新插入它,使用相同的方法将新对象分配到永久持久存储中。

这将让您使用一个NSManagedObjectContext附加到你的NSPersistentStoreCoordinator,它将看到来自两个的对象NSPersistentStores.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

保存单个核心数据实体(而不是整个上下文),同时保留 NSFetchedResultsController 功能 的相关文章

随机推荐

  • tomcat webapps目录绝对路径?

    我将 tomcat 提取放在一个地方 而我的 webapps 目录可能在其他地方 那么如何获取我的Web应用程序的绝对路径呢 我的文件处理程序位于 webapps 内 我想找到我的 webapps 或应用程序目录的绝对路径 从 c 或 ho
  • GitHub 页面上的侧边栏

    我在 GitHub Pages 上托管了一个简单的网站 它是一个公共存储库 仅使用具有默认设置等的标准默认模板 它是直接从根目录发布的 本质上 按照官方 Github Pages 教程 一切都处于默认状态 我只想为我的目录显示一个侧边栏 注
  • 谷歌 API 服务帐户。即使使用域范围委派访问也只能看到服务帐户驱动器

    我目前使用的 Google 服务帐户已启用域范围委派 我点击了此链接https developers google com identity protocols oauth2 service account https developers
  • 在 Nginx 配置中使用代理传递之前传递代理 URL

    我需要传递一个代理 URL 来连接到 Nginx 中作为代理传递提到的其他 URL 示例 如果我必须通过 Linux 服务器连接到 google com 我必须将代理设置为 xyz org 80 然后才能连接到 google com 那么如
  • 在 Windows 上使用 FreeType 和 Qt5

    有谁知道是否可以使用 FreeType 构建 Qt5 作为 Windows 上的文本渲染器而不是本机渲染器 我尝试使用 qt freetype 编译 Qt5 但仍然得到错误的文本 我还需要做其他事情吗 在查看 DeadWarlock 提出的
  • 检查数据类字段是否有默认值的 Pythonic 方法

    我最近一直在使用 python 3 7 并正在寻找利用新数据类的方法 基本上我有一个方法可以迭代数据类字段并检查它们是否有默认值 from dataclasses import fields MISSING classmethod def
  • pm2 下的自定义日志记录

    我在我写入的节点应用程序中有一些有用的日志记录console log node server js gt gt var log nodeserver log 2 gt 1 但是 当在下面尝试相同的操作时pm2 pm2 start serve
  • python如何在赋值运算符之后赋值[重复]

    这个问题在这里已经有答案了 好吧 我确信这是一个非常愚蠢的问题 但是python如何给变量赋值呢 说有一个变量a并被赋值a 2 所以python为变量分配了一个内存位置并且a现在指向包含该值的内存位置2 现在 如果我分配一个变量b a变量b
  • 以编程方式编辑表单回复

    我有一个谷歌脚本 可以为转储到我的电子表格中的每个表单响应生成编辑网址 有没有办法以编程方式更改响应值 就像我实际打开 URL 并手动更改值一样 例如 假设某人提交了一份姓名字段为 Sam 的表单 我希望能够以编程方式编辑此响应 以便同一字
  • 设备锁定时在 Today 扩展中加载文件

    在我今天的设备解锁的扩展中 这行代码按预期工作 从图像路径返回数据 let imageData NSData contentsOfFile path 但是 当我的设备用密码锁定时 它返回零 当设备锁定时 有什么方法可以访问文件系统中的图像吗
  • 全局设置环境变量而无需重新启动Ubuntu

    我知道可以通过添加条目来设置系统范围的环境变量 etc environment or etc profile 但这需要系统重新启动或 X 重新启动 是否可以在 Ubuntu Linux 中设置环境变量 以便在系统范围内立即可用 而无需重新启
  • 使用 for 循环进行多个公司和多个日期的事件研究

    我正在进行一项事件研究evReturn函数从erer包裹 目的是获得每个公司的超常收益以及所有公司的平均超额收益 我无法获得平均回报 因为该函数对每个公司执行单独的执行 但不会同时对所有公司执行一次 尽管这可以通过 for 循环实现 我似乎
  • 屏幕方向更改时非法状态异常未创建视图

    我一直在尝试制作一个从活动 GradeListActivity 打开列表视图片段 GradeListFragment 的应用程序 当我单击某个项目时 它会打开一个新片段 GradeDetailFragment 如果处于纵向模式 它将替换fr
  • Lazarus:如何列出系统上所有可用的网络连接?

    我正在使用 Lazarus IDE 在 Linux 系统上编写程序 该程序应该连接到 Internet 或 Intranet 所以 我想向用户显示他们可以用来连接到互联网或内部网 如wifi 的所有可用网络连接的列表 如果系统上有两个活动网
  • LinkLabel... 在默认网络浏览器中打开?

    是否可以开一个LinkLabel在默认计算机网络浏览器中 是的 你可以使用System Diagnostics Process Start url 在 链接被点击 事件中
  • HTTP 状态 403 - 对所请求资源的访问已被拒绝(CSS 被阻止?)

    我一直在努力保护我的项目 我有一个使用 LDAP 服务器进行身份验证的登录页面 如果不正确 它会显示一个错误页面等 我现在刚刚添加
  • 为什么 pip 需要在 iPython 中使用感叹号?

    只是一个简单的例子 输入pip list不起作用但是 pip list做 是否有一些关于感叹号和在 ipython shell 中使用模块的语法 这实际上并不特定于pip 但实际上是来自 iPython 笔记本的任何 shell 命令 您会
  • 如何在android中的sqlite数据库中存储带有列表的自定义对象

    如何为包含这样的列表的自定义对象创建表 public class Mobel implements Parcelable int thumbnail List
  • 修复 SwiftUI 中自定义字体的行距

    我正在使用自定义字体 双体船 https fonts google com specimen Catamaran 并且看起来行与行之间有很大的空间 例如我有这样的代码 Text Example text that has big space
  • 保存单个核心数据实体(而不是整个上下文),同时保留 NSFetchedResultsController 功能

    唷 抱歉标题太长了 我有一个托管对象上下文 其中存储来自两个不同位置的歌曲 我从手机上的持久存储中获取一些歌曲 使用 Core Data 并从在线数据库中提取一些歌曲 这两首歌曲都属于同一 ManagedObject 子类 我希望这两首歌都