在后台线程上保存到 CoreData Context

2024-02-03

我已经为此苦苦挣扎了一段时间,苹果的文档和 SO 到目前为止没有帮助。我在 UIManagedDocument 上使用 ManagedObjectContext 并且下面的代码工作正常。然后我决定在 AppDelegate 中使用 Apple 的 CoreData 模板,因此在 AppDelegate 中创建模型、持久存储协调器和上下文。使用AppDelegate的上下文获取没有问题,但是后台保存是一个问题。我应该在我保存的线程上有本地上下文,并且按照Apple的说法,应该有相同的持久性存储协调器。但下面的代码实际上并没有保存数据。这里有人可以建议吗?谢谢。

- (void)fetchAndPersist
{
    dispatch_queue_t ffetchQ = dispatch_queue_create("ForFetch", NULL);
    dispatch_async(ffetchQ, ^{

        NSManagedObjectContext *secureManagedObjectContext;
        NSPersistentStoreCoordinator *coordinator = [appDelegate persistentStoreCoordinator];
        if (coordinator != nil) {
            secureManagedObjectContext = [[NSManagedObjectContext alloc] init];
            [secureManagedObjectContext setPersistentStoreCoordinator:coordinator];
        }

        // find missing date
        DataManager *dataManager = [[DataManager alloc] init];
        NSDate *missingDate = [dataManager findMissingDateFromDate:selectedDate inContext:secureManagedObjectContext];

        if (missingDate) {
            // fetch and parse data
            DataFetcher *dataFetcher = [[dataFetcher alloc] init];
            NSDictionary *fetchResponse = [dataFetcher parseDataForDate:missingDate];

            // persist it in a block and wait for it
            [secureManagedObjectContext performBlock:^{
                DataStore *dataStore = [[DataStore alloc] init];
                BOOL parsingError = [dataStore persistData:fetchResponse inContext:secureManagedObjectContext];

                if (parsingError) {
                    // handle error
                } else {
                    dispatch_async(dispatch_get_main_queue(), ^{
                        // perform on main
                        [self fetchAndPersist];
                    });
                }
            }];
        }
    });
}

尝试使用父/子上下文:

http://www.cocoanetics.com/2012/07/multi-context-coredata/ http://www.cocoanetics.com/2012/07/multi-context-coredata/

在上面的链接中,您可以找到代码示例。

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

在后台线程上保存到 CoreData Context 的相关文章

  • 所有 UI 前面的透明 UIImageView

    首次启动我的应用程序后 我想向用户展示一些教程 以解释我的应用程序的功能 所以我需要设置一个带有一些箭头和标签的透明 UIImageView 其中主 UI 更具体地说 tabbarcontroler 中的 navigationviewcon
  • 使用 Swift 导入 aurioTouch 库

    我正在尝试将 Objective C 应用程序转换为 swift 我想导入课程奥里奥触摸 https developer apple com library ios samplecode aurioTouch Introduction In
  • 对于 malloc 指针,是否有相当于 __attribute__((ns_returns_retained)) 的函数?

    我正在寻找类似的注释 SomeStruct structFromInternals attribute returns malloced ptr SomeStruct ret malloc sizeof SomeStruct do stuf
  • 派生类在 PySide (Qt/PyQt) 中的错误线程中接收信号

    我在让派生类在 PySide 中正确接收信号时遇到问题 我在主 GUI 或命令行应用程序 线程的两个单独线程上使用发送器和接收器 线程是 QThread 对象 发送器和接收器在创建后立即使用 QObject moveToThread 移动到
  • 在单个 MTLRenderCommandEncoder 中使用多个渲染管道:如何同步 MTLBuffer?

    中心议题我在一个渲染命令编码器中有两个渲染管道 第一个管道写入第二个管道中使用的缓冲区 这似乎不起作用 我预计这是一个同步问题 当我为每个渲染管道使用一个单独的渲染命令编码器时 我得到了所需的结果 可以使用一个渲染命令编码器来解决这个问题
  • 使用 NSPredicate 来检测 NOT CONTAINS

    我放弃 我已经尝试了我能想象到的所有组合来检查一个字符串是否包含另一个字符串 这是描述我想要做的事情的直观语法示例 NSPredicate pPredicate NSPredicate predicateWithFormat NOT K C
  • iOS 应用程序在被杀死之前平均在后台运行多长时间?

    我需要通过 API 检查后端的应用程序设置更新 因此我不确定在启动时执行此类检查是否足够 或者我需要在应用程序进入前台后立即执行此类检查 当然 这取决于打开的应用程序数量 设备功能 但是关于应用程序可以在后台存活多长时间直到被杀死 有什么一
  • 如何防止新的 WPF 表单窃取焦点?

    我写了一个简单的MSN http en wikipedia org wiki MSN 风格的程序将使用发送和检索消息WCF http en wikipedia org wiki Windows Communication Foundatio
  • 如何捕获 Runnable 中的封闭范围

    我正在尝试对 a 进行一系列更新HandlerThread使用下面的类 但我有几个关于变量捕获在 Java 中如何工作的问题 1 Is ret通过引用从封闭范围捕获 2 Does this参考Runnable 或者是从封闭范围捕获的 bon
  • 与在后台运行应用程序的一台设备进行多点连接

    我想使用多点连接框架连接 2 台设备 其中一台设备在后台运行应用程序 就像 Firechat 一样 我无法确认这是否有效 我已将其安装在 iPhone 5S 和 4 上 但是他们只是找不到彼此 但我在某处读过这有效 实现这一目标的最佳方法是
  • ALAssetPropertyDate 返回“错误”日期

    我目前正在开发一个项目 需要读取一些 纬度 经度和日期 EXIF 数据 位置数据似乎是正确的 但我得到的日期似乎是 上次修改日期 日期 CLLocation loc asset valueForProperty ALAssetPropert
  • 加快 SpriteSheet 的 UIImage 创建速度

    我不确定我的标题是否正确 但我不确定我的问题到底在哪里 我需要从 spritesheet 加载 UIImage 数组 然后将其用作 UIImageView 中的动画 spritesheet是用TexturePacker生成的 它生成巨大的图
  • 使用自定义组件:子类 UIView 或 UIViewController?

    我正在研究 UISegmentedControl 的自定义实现 我想创建一个能够接收配置数据并从中获取类似于 UISegmentedControl 的自定义视图的组件 我开始对 UIView 进行子类化 我可以使用以下代码创建自定义 UIS
  • Android 和 iOS 中的应用程序文件大小差异

    通过使用两个应用程序分发服务 Android 市场和 Apple 应用程序商店 我发现了一个谜团 Apple 应用程序的文件大小通常大于 Android 应用程序 我似乎找不到任何对这些差异的解释 而且这似乎是一个未触及的主题 我尝试过分配
  • 如何正确使用CCSpriteFrameCache和CCSpriteBatchNode?

    我不明白当我将 CCSpriteFrameCache 或 CCSpriteBatchNode 添加到我的 cocos2d 应用程序时我到底做了什么 有人可以解释一下以下几点吗 如果你能解释一些的话会很有帮助 请根据你回答的问题在你的答案前写
  • 如何让 iPhone 发出蜂鸣声?

    什么代码可以让我在 iPhone 上发出标准的蜂鸣声 好吧 这取决于您想要什么样的声音 以下是如何使用 AVFoundation 音频框架播放声音 import
  • 如何从静态图像中读取二维码

    我知道你可以使用AVFoundation使用设备的摄像头扫描 QR 码 现在问题来了 我该如何从静态中做到这一点UIImage object Neimsz 的 Swift 4 版本answer https stackoverflow com
  • 控制 NSLayoutManager 中自定义文本属性周围的间距

    我有一个习惯NSLayoutManager我用来绘制药丸状标记的子类 我使用自定义属性为子字符串绘制这些标记 TokenAttribute 我会画画没有问题 但是 我需要在范围周围添加一些 填充 TokenAttribute 这样标记的圆角
  • 可疑地使用“else”与 i/o 结合,看到“;”靠近“如果”

    以下是导致此问题的代码 if fromProc 0 MSG SLEEP nempty proc2clk 0 gt proc2clk 0 fromProc 0 Woke up fromProc 0 MSG SLEEP fromProc 0 M
  • 如何查看iOS11屏幕录制是否开启?

    为了检测 iOS11 屏幕录制功能的开或关 我使用了 isCaptured 和 UIScreenCapturedDidChange 通知 当我第一次启动应用程序并在 iOS11 内置屏幕录制功能上时 它会通知选择器方法 值为 True 但是

随机推荐

  • 需要java API来解析SQL语句[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我需要一个java API来解析SQL语句 例如 我有一个 SQL 查询 SELECT PRODUCTS PROD ID PRODUCTS
  • 在SQL Server中创建用户后无法登录

    我的问题是创建用户后无法登录 SQL Server 用户创建成功 因为新用户列在安全 登录下 怎么解决这个问题 用户 sims 登录失败 该用户未与某个关联 受信任的 SQL Server 连接 微软 SQL Server 错误 18452
  • 如何创建动态路径组件并结合重试直到

    我有一个用例 我需要首先调用 API 来获取 ID 列表 从该响应中选择一个随机 ID 接下来 我调用第二个 API 它使用随机 ID 作为路径中的组件 第二个 API 调用可能会返回空响 应 因此我想利用retry until但在每次重试
  • 使用另一个 pandas DataFrame 更新存储在 Pytable 中的 pandas DataFrame

    我正在尝试创建一个函数 用 pandas DataFrame 中的新数据更新我存储在 PyTable 中的 pandas DataFrame 我想检查 PyTable 中是否缺少特定 DatetimeIndexes 的某些数据 值为 NaN
  • 用户警告:无法导入 lzma 模块。你安装的Python不完整

    安装 Google Cloud Bigquery 模块后 如果我将该模块导入 python 代码 我看到这条警告消息 在 python 3 7 3 Virtualenv 中发生在我身上 尝试重新安装 GCP bigquery 模块 如果我们
  • 使用imageview显示google play游戏服务玩家图像

    我正在使用 Google Play 游戏服务 并使用此代码来获取玩家详细信息 if gamesClient null Games Leaderboards loadCurrentPlayerLeaderboardScore gamesCli
  • 在 IntelliJ 和 Eclipse 开发人员都在工作的项目中使用 @NotNull

    IntelliJ IDEA 的一位同事 从事另一个项目 向我展示了令人惊叹的 NotNull 注释 我在这里读过有关如何开始在各处添加 NotNull 的消息 节省了大量时间和麻烦 IntelliJ 10 甚至可以在检测到该情况时自动将 N
  • 如何创建通用 JsonDeserializer

    我需要创建一个通用解串器 换句话说 我不知道反序列化的目标类是什么 我在互联网上看到过一些例子 他们创建了一个反序列化器 例如JsonDeserializer
  • 如何使用 Django 创建三重联接表

    使用 Django 的内置模型 如何在三个模型之间创建三重连接 例如 用户 角色和事件是模型 用户有很多角色 角色有很多用户 多对多 事件有许多用户 用户也有许多事件 多对多 但对于任何给定的事件 任何用户可能只有一个角色 如何在模型中表示
  • 必需的字段验证在 JQuery Popup MVC 4 中不起作用

    我有 JQuery 弹出窗口 我想在其上放置必需的字段验证 为此 我在模型中设置了必需的属性 并在视图中为它们设置了验证消息 但所需的字段验证不适用于弹出窗口 必需的字段验证在 JQuery 弹出窗口以外的表单上运行良好 请指导我应该如何解
  • Google 计算引擎 (GCE) 电子邮件传送解决方案?

    我刚刚在 Google Compute Engine 上设置了几个实例 但由于 GCE 阻止了端口 25 465 和 587 上的出站连接 因此电子邮件发送系统出现了问题 GCE 提 供详细解决方案 https developers goo
  • 如何从 C++ 更改 Windows 闪烁光标形状?

    如何将 Windows 闪烁光标形状从默认的垂直 更改为水平 如 dos 中使用的 有没有一些好的功能可以解决这个问题 OS win7 这实际上被称为caret 而不是一个cursor 这可能就是混乱的根源 也是为什么寻找解决方案没有产生太
  • 如何添加与夏令时时区相关的每周时间增量

    我想向本地化日期时间对象添加或减去周 或天 月或年 问题是 由于夏令时时区 这种天真的方法会导致 1 小时轮班 2014 03 27 12 00 就在冬令时转夏令时之前 例如 如果我向欧洲 柏林时区本地化的日期添加一周的时间增量 结果将是
  • 自动夹具奇怪的错误

    我收到这个错误 Ploeh AutoFixture Kernel IllegalRequestException 对 IntPtr 的请求是 检测到 这是不安全的资源 如果使用的话 进程会崩溃 所以请求被拒绝 普通的 IntPtr请求的来源
  • 在 WiX Burn 自定义托管引导程序中将 WIC 添加为 .NET 4.0 之前的要求

    我在获取包含自定义托管引导程序应用程序的刻录包以在某些不附带 Windows 成像组件的平台上启动时遇到问题 而安装 NET 4 0 需要使用该组件 Windows 2003 就是其中之一 我们使用标准方法来定义托管引导程序应用程序所需的内
  • 如何在php代码中嵌入html文件?

    我有很多 html 文件 现在我想使用一些 php 代码一一调用每个文件 但每当我尝试运行 php 代码来从文件夹中调用这些 html 文件时 它都不起作用 1 html view 2 html view 3 html view 因此 1
  • 无法将 Ribbon TextBox isEnabled 设置为 False

    我一直在尝试功能区控件并遇到可能的错误 或者我可能做错了什么 如果我有一个RibbonTextBox on the RibbonTab 并设置已启用 to False or True在代码后面 我只能将其设置为 false 而不能设置为 t
  • 无法使用L SDK的部分功能

    我正在尝试在新的 SDK 中使用新的活动转换 我尝试了这一行 getWindow requestFeature Window FEATURE CONTENT TRANSITIONS 但问题是Window不包括FEATURE CONTENT
  • Python 3.5 中的注释给出 unicode 错误

    我使用的是 Spyder IDE Python 3 5 它是 anaconda 发行版的一部分 下面给出了代码的前几行 coding utf 8 Created on Tue Sep 20 16 22 40 2016 author pava
  • 在后台线程上保存到 CoreData Context

    我已经为此苦苦挣扎了一段时间 苹果的文档和 SO 到目前为止没有帮助 我在 UIManagedDocument 上使用 ManagedObjectContext 并且下面的代码工作正常 然后我决定在 AppDelegate 中使用 Appl