使用 WatchKit 和 iOS 应用程序获取核心数据

2024-03-12

这个问题已经被问过,但已收到没有答案 https://stackoverflow.com/questions/27791594/watchkit-core-data-sync-up.

我的 iOS 应用程序和 WatchKit 扩展共享一个应用程序组,其中保留了核心数据存储。核心数据模型(简化)是一个具有年龄属性的 Person 对象。应用程序和扩展程序都可以随意更改年龄。

如果手表上某人的值发生变化,除非我关闭并重新运行应用程序,否则应用程序不会反映它。反方向也是一样。

如果我尝试将手表上的年龄更改为 20,并将手机上的年龄更改为 30,那么我会收到与合并冲突有关的错误,因为我没有使用最新版本的其中一台设备上的 NSManagedObject(以我最后更改的年龄为准)。

我怎样才能让两者一起工作而不出现任何问题?


由于不会在不同进程之间接收通知,因此您需要使用 Darwin 通知。您可以轻松地使用openParentApplication:reply:方法将更新从 Watch Extension 发送到 iOS 应用程序,但 Apple 没有办法将事件从 iOS 应用程序发送到 Watch Extension。

我建议你使用毫米波虫洞 https://github.com/mutualmobile/MMWormhole(或者您自己的 Darwin 通知实现)在 Core Data 对象更新时发送 Darwin 通知。Here http://www.mutualmobile.com/posts/mmwormhole是一篇详细介绍该库如何工作的文章。

如果您更新 Watch Extension 中的 Core Data 对象,则向 iOS 应用程序发送 Darwin 通知(或传递消息),告诉应用程序需要刷新 Core Data 对象。同样的方法也可以用于另一个方向,从 iOS 应用程序到手表扩展。

此外,如果您的对象非常简单,那么 CoreData 可能就有点矫枉过正了。您可以使用 MMWormhole 来简单地缓存在两端使用的轻量级字典。我已经使用这种方法几个星期了,它在两个方向上都完美无缺。

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

使用 WatchKit 和 iOS 应用程序获取核心数据 的相关文章

随机推荐

  • phpMyadmin 数据库导入错误 #1046 - 未选择数据库

    我有一个从另一台计算机上的 phpmyadmin 导出的 sql 文件 我尝试在此计算机上导入该文件 但收到此错误 Error SQL查询 Database phplogin Table structure for table people
  • 如何让div居中对齐?

    我想要一个垂直和水平居中的 div 即位于页面的中心 我尝试了position absolute并将div的右上角左下角设置为0 但问题是 当我放大页面时 它与其他标题和其他 div 重叠 请帮我 如何在放大页面时将 div 定位在页面中心
  • C# 控制台应用程序 - 如何始终从控制台读取输入?

    我目前正在编写一个使用大量多线程的控制台应用程序 我希望能够始终允许用户在控制台中输入内容 但是 线程会定期输出到控制台 但我希望用户始终能够在控制台中输入内容 并由我来处理输入 我将如何实现这一目标 我在网上没有找到任何相关内容 先谢谢了
  • 如何使用 Java 将 JPEG 图像读入 BufferedImage 对象

    这不是一个重复的问题 因为我已经在Google和StackOverflow中寻找解决方案很长时间了 但仍然找不到解决方案 我有这两张图片 这是来自同一网站的两张图像 具有相同的前缀和相同的格式 唯一的区别是尺寸 第一个较大 而第二个较小 我
  • 导航栏链接到子文件夹

    每当我有一个指向子文件夹中页面的链接时 它就会冻结子文件夹中的导航栏 以便浏览器链接保留在子文件夹中并且无法找到 在 Visual Studio Express 中使用母版页 母版页如下所示
  • EAGL:它到底代表什么?

    我忘了 但是 EAGL 代表什么具体的东西吗 或者它只是核心动画 OpenGL 命名约定的一部分 CAEAGLLayer 等 AGL 是苹果 OS X 的 OpenGL 扩展的名称 我相信 EAGL 是 Embedded AGL 或 ES
  • 为什么使用map、forEach和for循环插入数据库时​​数组的顺序不同

    我有一个数组 1 2 3 4 5 当插入数据库时 我除了收到数据库中的 1 2 3 4 5 这样的结果之外 但只有循环 for 才能给我预期的结果 map 和 forEach 总是给我无序数组 如 1 3 4 5 2 或 4 3 2 5 1
  • EXC_BAD_INSTRUCTION(代码=EXC_I386_INVOP,子代码=0x0)

    我真的不明白为什么我有这个错误 首先 调试器停在机器代码处 该线程也没有显示任何内容 程序实际上没有代码就停止了 所以和 dispatch worker thread有关系 那是什么 有什么办法我可以调试这个吗 我应该回滚吗 当您运行 CP
  • pip ImportError:无法从“集合”导入名称“映射”

    pip 尝试访问的 python 库似乎存在冲突 如以下错误所示 root fedora user pip Traceback most recent call last File usr local bin pip line 5 in
  • Format-Table 根据输出缓冲区宽度设置列宽

    我有一个使用的 cmdletFormat Table输出可能很长的字符串 例如注册表路径 我想将每列宽度设置为输出缓冲区宽度除以列数 Example function Write Something CmdletBinding param
  • cassandra 列族数量的增加对堆利用率有什么影响?

    我们使用的是 cassandra 1 1 出于某些优化目的 我们决定增加键空间中的列族数量 对堆利用率有影响吗 Cassandra 是否有可能耗尽内存 根据 Cassandra Wiki 每个节点 消耗的堆大小定义为 memtable th
  • 无法读取 Angular 2 嵌套调用中未定义的属性“订阅”

    我想订阅company list component on getCompanies 来自company service 但是我收到以下错误 无法读取未定义的属性 订阅 这是代码 公司 service ts getCompaniesOfUs
  • 修复同时包含 UTF-8 和 Windows-1252 的文件

    我有一个生成 UTF 8 文件的应用程序 但某些内容的编码不正确 一些字符被编码为 iso 8859 1 又名 iso latin 1 或 cp1252 又名 Windows 1252 有没有办法恢复原文 Yes 显然 最好修复创建文件的程
  • 跨模块单例

    我正在尝试实现单例 但在导入模块时遇到了困难 我的设置如下 我正在使用Python 2 7 MODULE 1 class SingletonClass object def new self args kwargs if not self
  • Perl 部分匹配

    请考虑下面的脚本 我想将 b 与 a 匹配 即使 b 是部分匹配 这件事能做得到吗 a MCF 7 b MCF if b m a i print FOUND 虽然正则表达式可以做到这一点 但听起来您的问题也可以通过index功能 say i
  • 创建目录符号链接时出现问题

    我一直致力于开发一个程序来管理文件夹的符号链接 该程序运行良好 直到我转向在 Windows 8 计算机 从 Windows 7 上继续工作 自从这样做以来 我的CreateSymbolicLink 方法返回错误代码 2 这是我想要链接目录
  • 通过 Parse 检索我的 Android 应用程序中与我的电话联系人列表匹配的用户列表

    我正在使用 Parse 开发一个 Android 聊天消息应用程序 在我已成功完成的注册过程中保存用户的电话号码 用户名和密码 现在 我想获取已保存在 电话联系人 列表下与其电话号码匹配的用户列表 并在列表视图中显示用户 我一直坚持编写解析
  • 使用powershell创建计划任务并且不存储密码

    我正在尝试制作一个 powershell 脚本来创建计划任务以按需运行命令 以下是我迄今为止的代码 taskName TestTask taskPath
  • Python lambda 即使条件为 false 也会返回 true

    gt gt gt if lambda x True True print yes yes gt gt gt if lambda x False True print yes yes 您没有像我在评论中解释的那样调用您的 lambda 但如果
  • 使用 WatchKit 和 iOS 应用程序获取核心数据

    这个问题已经被问过 但已收到没有答案 https stackoverflow com questions 27791594 watchkit core data sync up 我的 iOS 应用程序和 WatchKit 扩展共享一个应用程