watchAppExtension 中的 NSUserDefault 更改通知处理

2023-11-23

我正在创建一个  手表应用程序,只是为了当用户点击 iPhone/主机应用程序中的表格视图时在手表上显示值。

我想收到共享值更改的通知UserDefault。它在 WatchKit 应用程序和 iOS(主机)应用程序之间共享,因此当用户在主机应用程序中进行任何更改时,我希望收到通知。我做了以下事情:

当用户在应用程序(主机应用程序)中执行某些操作时:

NSUserDefaults *shared = [[NSUserDefaults alloc] initWithSuiteName:@"group.app"];
id object = [self.plantsArray objectAtIndex:[self.plantsTable indexPathForSelectedRow].row];
[shared setObject:object forKey:@"data"];
[shared synchronize];

在 Watchkit 扩展中已注册通知:

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(print) name:NSUserDefaultsDidChangeNotification object:nil];

但不幸的是我没有收到任何通知,有人有解决方案吗?


我不认为iOS有能力distributed notifications在应用程序和扩展程序之间,通知在两者之间不起作用,相反,您需要找到一种方法让两者都可以监视更改。例如文件。

正如您已经创建的group,您可以在组文件夹中保留一个文件并添加一个filewatcher在扩展中,从应用程序更新文件,并且filewatcher会抓住变化,你的工作就完成了。

For filewatcher看代码here.

希望能帮助到你。

Cheers.

Update

Find File watcher Swift version here。谢谢@rivera用于添加。

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

watchAppExtension 中的 NSUserDefault 更改通知处理 的相关文章

  • 我什么时候应该使用 CGM 设备组和主题?

    我正在考虑将 Google Cloud Messaging 合并到我的应用程序中 我想向与用户关联的所有设备发送消息 乍一看 它看起来像 GCM 的设备群组消息传递 https developers google com cloud mes
  • 从钥匙串保存和加载 |斯威夫特[重复]

    这个问题在这里已经有答案了 如何简单地将字符串存储在钥匙串中并在需要时加载 有几种SO解决方案 主要参考Git repo 但我需要最新 Swift 上最小和最简单的解决方案 当然 我不想添加 git 框架来简单地在我的项目中存储密码 有类似
  • iOS 9.3 出现新的 UIPDFPageRenderOperation 错误?

    我正在向 UIWebView 添加一些 PDF 链接 每次加载并做出滚动手势时 都会收到此错误 objc 910 UIPDFPageRenderOperation 对象 0x14acaca10 过度释放 当已经解除分配时 打断 objc o
  • 如何在调用-reloadData后保留UITableView contentoffset

    CGPoint offset table contentOffset table reloadData table setContentOffset offset animated NO unuseful block UITableView
  • 启动时运行后台任务

    我正在编写一个 iOS 应用程序 它使用 Dropbox Datastore API 在多个设备之间同步数据 在 Android 上 我可以告诉服务在启动时启动 这使其能够同步 设备关闭时可能发生的任何更改 我无法找到让我的应用程序在 iO
  • 播放声音无延迟 iOS

    我找不到如何以低延迟播放真实声音的方法 我尝试使用 AVFoundation 音频播放器 巨大的延迟大约 500 毫秒 所以我尝试创建系统声音 如果运气不好 延迟大约为 200 毫秒 虽然不多 但对我来说没有用 我最多需要 50 毫秒 确保
  • Eddystone 信标检测问题

    以下是我使用 iPhone iOS 9 检测 Eddystone 的代码 void viewDidLoad super viewDidLoad if CLLocationManager locationServicesEnabled loc
  • 如何执行 UIAlertAction 的处理程序?

    我正在尝试编写一个帮助程序类以允许我们的应用程序支持两者UIAlertAction and UIAlertView 然而 当写alertView clickedButtonAtIndex 方法为UIAlertViewDelegate 我遇到
  • Braintree DropIn + Apple Pay,未出现 Apple Pay 项目

    我成功调用DropIn来自 Braintree SDK 的视图 这BTDropInRequest设置应显示三项 PayPal 信用卡 苹果支付 但由于某种原因在DropIn视图仅呈现两个项目而不是三个 PayPal 信用卡 我做错了什么 准
  • 使用 NSJSONSerialization 解析 JSON

    对此进行了太多讨论 但我不知道如何解决我的问题 这是我从 WorldWeatherOnline 获取的 JSON 数据 JSON 有效 但我不知道如何解析它 这是我的代码 后面是 JSON 请帮忙 NSError errorInfo NSD
  • 同一应用程序的不同版本取决于设备(应用程序商店)

    我已经将我的游戏提交到App Store并更新了 现在最新版本是每个下载我游戏的人都应该得到的版本 对吗 现在的问题是 当我从 iPad mini 上的 App Store 下载游戏时 我得到的是正确的版本 但是当我从 iPad 2 下载游
  • 如何创建一个 NSMutableArray 并为其分配一个特定的对象?

    我刚刚开始接触 Obj C 并且希望创建一个 MKAnnotations 数组 我已经创建了名为的 MKAnnotation 类TruckLocation其中包含名称 描述 纬度和经度 这是到目前为止我所拥有的数组 NSMutableArr
  • 在 UITableView 中设置滚动位置

    我有一个应用程序 其工作方式与 iPhone 的 联系人 应用程序的工作方式有些相似 当我们添加新的联系人时 用户将被定向到包含联系人信息的仅查看屏幕 如果我们从导航栏中选择 所有联系人 用户将导航到查看最近添加的联系人的所有联系人列表 我
  • 核心蓝牙在后台进行广告和扫描

    我一直在尝试设置一个应用程序 使设备既扫描外围设备又作为外围设备进行广告 目标是当两个设备通过蓝牙发现彼此靠近时在后台被唤醒 从 Apple 文档来看 您似乎应该能够在后台运行 BLE 启用蓝牙中心和蓝牙外设后台模式 并且当一台设备位于前台
  • CoreAnimation 性能分析 - CAReplicatorLayer 与 CAShapeLayer

    我正在制作一个依赖 CoreAnimation 的应用程序 它有一个 CAReplicatorLayer 和一个 CAShapeLayer 作为子层 当进行 12 次复制 然后对路径进行动画处理 在 touchMoved 上更改它 时 一旦
  • 移动 Safari 中的文件上传和 EXIF

    正如这些问题中所指出的 在某些情况下 iOS 上上传的照片的地理位置和其他 EXIF 元数据会被删除 在 safari 中 https apple stackexchange com questions 326789 gps exif fr
  • prepareForSegue 和代表

    我有一个有两个 segue 的应用程序 在其中一个 Segue 中 当前视图控制器成为委托 而另一个则不是 void prepareForSegue UIStoryboardSegue segue sender id sender if s
  • iOS UITableViewCell 配件在左侧?

    对于我的应用程序 我想要一些可以同时具有复选标记和详细信息披露按钮的单元格 也就是说 我希望它们看起来与 iOS 设置中的 Wi Fi 网络选择一模一样 左侧的复选标记 中间的内容 右侧的详细信息披露按钮 有没有正确的方法来做到这一点 或者
  • 自动布局:Y 位置为两个值中的最大值

    我有一个按钮 play Button 和两个 UIView myView 1 和 myView 2 它们的位置在执行过程中可能会发生变化 我希望 playButton 的顶部比 UIView 1 的底部或 UIView 2 的底部低 10
  • Swift 3 '[UIApplicationLaunchOptionsKey:任意]?'无法转换为 '[String : NSString]'

    我有一个 TVOS 应用程序已从 Swift 2 转换为 Swift 3 但出现以下错误 我不确定如何让它安静下来 UIApplicationLaunchOptionsKey 任意 无法转换为 String NSString 它出现在这段代

随机推荐

  • 使用 Delphi 进行 JNI 编程

    我可以用Delphi来编程吗Java 本机接口 来自阅读基本 JNI如果您确保使用 C 调用约定 这似乎是可能的 以前有人这样做过吗 我希望得到有关工具的提示 这些工具将有帮助 例如一个将Javah的C头文件转换为Delphi的工具 您可以
  • 文本缩进不适用于锚标记

    http jsfiddle net corinem TtPgy 我在用着 a href Lorem ipsum dolor a css a text indent 9999px 但这行不通 例如 当我使用另一个标签时 p 有用 我也尝试添加
  • ASP.NET Core 模型绑定错误消息本地化

    我正在使用 ASP NET Core 并尝试本地化该应用程序 我设法使用new用于本地化控制器和视图的 asp net core 资源 以及old用于本地化模型验证错误消息的资源 但是 当错误消息未链接到模型字段注释 如 必需 并且模型绑定
  • 从 inotify_event 检索完整路径名

    inotify event 结构如下所示 struct inotify event int wd Watch descriptor uint32 t mask Mask of events uint32 t cookie Unique co
  • 带有 src 和内容的 script-Tag 是什么意思?

    Google 1 按钮的示例 script 标签有一个 src Attributeand内容 这是什么意思以及它是如何工作的 不同的浏览器对此有不同的处理方式 有些仅在以下情况下运行内容 src包含在内 没有错误 有些人在尝试包含以下内容后
  • Python RuntimeWarning:长标量中遇到溢出

    我是编程新手 在我最新的 Python 2 7 项目中 我遇到了以下问题 RuntimeWarning long scalars 中遇到溢出 有人可以详细说明这意味着什么以及我可以做些什么来解决这个问题吗 代码运行完毕 但我不确定忽略警告是
  • UiBinder 小部件中的自定义属性

    我正在为我的应用程序使用 GWT 和 UiBinder 并且我正在尝试这样做
  • orWhereHas - Eloquent 查询上的参数分组 - 如何在 Laravel 中执行此操作?

    在我正在构建的雄辩查询中 我对has使用 Laravel 4 1 的关系whereHas and orWhereHas方法 在示例足球应用程序中 我希望对homeClub and awayClub关系 以便我可以在结果集中选择 homeCl
  • 仅允许在核心图条形图中水平滚动?

    I am using core plot lib to draw bar charts in my app like this 我的问题是我希望仅在水平方向上启用图形移动 以便我可以长时间看到记录 但问题是我只是不想将 y 轴固定在其位置
  • 如何在Android中将菜单设置为工具栏

    我想用ToolBar代替ActionBar 但不要在工具栏中显示菜单 我想要套餐 例如Refresh or Setting按钮ActionBar Toolbar xml代码
  • 用于查找对的压缩矩阵函数

    对于一组观察结果 a1 a2 a3 a4 a5 他们的成对距离 d 0 a12 a13 a14 a15 a21 0 a23 a24 a25 a31 a32 0 a34 a35 a41 a42 a43 0 a45 a51 a52 a53 a5
  • 以编程方式启动 .NET Core Web 应用程序进行 Selenium 测试

    我目前正在尝试在核心 Web 应用程序上设置一些 UI 测试 但是我无法启动该 Web 应用程序 直接使用 Web 应用程序目录中的 dotnet run 命令行即可 当我在执行测试之前尝试使用 Process 运行它时 问题就出现了 没有
  • Math.floor(Math.random() * 5 + 1) 的概念,真实范围是多少,为什么?

    通过将随机数 介于 0 和 1 之间 乘以 5 我们将其设为 0 到 5 之间的随机数 例如 3 1841 Math floor 将此数字向下舍入为整数 并在末尾添加 1 将范围从 0 到 4 更改为 1 到 5 之间 最多 包括 5 上面
  • 如何使用 schemaLocation 或 noNamespaceSchemaLocation 将 XML 链接到 XSD?

    我找到了一些解决这个问题的提示 但仍然没有帮助我 这是我的 XML
  • onClickListener 在片段中不起作用

    我在片段中的 onClicklistener 上遇到了一些问题 如果我点击按钮什么也不会发生 我既没有从 Logcat 中的 onClicklistener 收到消息 屏幕上也没有出现 Toast 但我在代码中找不到错误 有任何想法吗 我将
  • Access 数据库的连接池

    我有一个应用程序经常从 Access 数据库读取数据 有什么方法可以使用连接池吗 我的开放数据库方法 private bool OpenDatabaseConnection string databaseName try string co
  • WiX 权限,如何用 DACL 标志表达“修改”

    我正在尝试将自定义权限应用于文件夹作为 WiX 3 0 4318 0 安装程序的一部分 就资源管理器中的安全属性 UI 而言 我想添加修改 BUILTIN Users 的权限 显然 它需要能够抵抗用户名的本地化 因此 根据我迄今为止的研究
  • jQuery 在鼠标移开时隐藏 div

    我看了很多关于这个项目的帖子 但找不到正确的解决方案 抱歉 如果它已经在某处得到回答 我想要的是 我有一个DIV与我的菜单项 当click事件被触发href元素 现在我想隐藏菜单 当鼠标离开时DIV元素并且不在上面href元素 到目前为止
  • vue-socket.io 如何连接到多个 websocket 服务器

    我尝试从 VUE 客户端连接到两个不同的 Web 套接字服务器vue socket io像这样 import store from store store import store2 from store store2 Vue use Vu
  • watchAppExtension 中的 NSUserDefault 更改通知处理

    我正在创建一个 手表应用程序 只是为了当用户点击 iPhone 主机应用程序中的表格视图时在手表上显示值 我想收到共享值更改的通知UserDefault 它在 WatchKit 应用程序和 iOS 主机 应用程序之间共享 因此当用户在主机应