在扩展之间共享用户默认值

2023-12-27

创建一个 Today 小部件,我正在使用UserDefaults(suiteName:)保存一些数据。在我使用的主应用程序中UserDefaults.standard()。扩展程序无法读取(或者可以吗?),这就是我使用suiteName:构造函数。

用户坚持的数据UserDefaults.standard()主应用程序中的内容需要在扩展程序中可用。

现在我坚持两者,以便价值观能够共享

 UserDefaults.standard().set:...forKey:...
 UserDefaults(suiteName:...)().set:...forKey:...
 ...

问题是我应该放弃吗UserDefaults.standard()一起使用UserDefaults(suiteName:)在我的应用程序中,或者这是不好的做法,如果是的话为什么?

编辑:我正在使用应用程序组容器。为了澄清,我想问我是否应该更换standard() with suiteName:贯穿我的项目?


你不能使用UserDefaults.standard在主机应用程序及其应用程序扩展之间共享数据。相反,您必须创建一个共享容器UserDefaults(suiteName:)共享数据。

即使应用程序扩展包嵌套在其包含的内容中 应用程序的捆绑包,正在运行的应用程序扩展和包含的应用程序没有 直接访问彼此的容器。

要启用数据共享,请使用 Xcode 或开发人员门户启用 包含应用程序及其包含的应用程序扩展的应用程序组。 接下来,在门户中注册应用程序组并指定应用程序组 在包含的应用程序中使用。

启用应用程序组、应用程序扩展及其包含的应用程序后 都可以使用 NSUserDefaults API 来共享用户的访问权限 优先。要启用此共享,请使用 initWithSuiteName: 方法 实例化一个新的 NSUserDefaults 对象,传入标识符 共享组的。

更多内容请参考:https://developer.apple.com/library/content/documentation/General/Conceptual/ExtensibilityPG/ExtensionScenarios.html#//apple_ref/doc/uid/TP40014214-CH21-SW1 https://developer.apple.com/library/content/documentation/General/Conceptual/ExtensibilityPG/ExtensionScenarios.html#//apple_ref/doc/uid/TP40014214-CH21-SW1

如何使用应用程序组:https://github.com/pgpt10/Today-Widget https://github.com/pgpt10/Today-Widget

标准还是套房名称?

对于仅适用于主机应用程序的数据,请使用标准数据。将 suiteName 用于要在扩展程序和主机应用程序之间共享的数据。只是不要在两者中保留相同的数据。避免数据冗余。根据上下文使用它们。

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

在扩展之间共享用户默认值 的相关文章

随机推荐

  • 后退按钮未显示在导航控制器中

    我已将一个视图控制器中的表单元格的显示序列添加到嵌入导航控制器中的另一个表视图 当我单击第一个视图中的单元格时 segue 按预期工作并显示新视图 但是 后退 按钮 带有原始视图的标题 不会出现在导航栏中 我搜索了 SO 发现过去提出过很多
  • 设置为背景的 SVG 线性渐变在 Edge 和 IE 中不起作用

    我使用带有线性渐变颜色的 SVG 形状 background url imgUrlBase element svg 除了 Edge 和 IE 之外 在任何地方都可以正常工作 形状显示正确 但不是渐变 只有纯色 由于多种原因 简单使用 png
  • 通过 Instagram API 使用 php 获取照片和点赞

    使用 Instagram 时client idAPI 请求如下 https api instagram com v1 users https api instagram com v1 users 用户 ID media recent cli
  • 如何在 Tkinter 文本框中设置对齐方式

    Question 如何更改特定行的对齐方式ScrolledTextTkinter 中的小部件 我原来的错误的原因是什么 背景 我目前正在开发 Tkinter 文本框应用程序 并且正在寻找更改行对齐方式的方法 最终 我希望能够更改特定行左对齐
  • C++ 中数组的静态边界检查

    我需要一些关于我正在学习的编程语言课程中的问题的指导 我们需要想出一种在 C 中实现数组类的方法 以便静态检查对其元素的访问是否存在溢出 我们不会使用 C 11 静态断言 或任何其他黑盒解决方案 这是一个理论问题 而不是我出于编码目的所需的
  • 来自数组的 PHP 值,其中键位于另一个数组中

    由于某种原因 我正在为此苦苦挣扎 我有2个数组 第一个是名为 colsArray 的标准数组 如下所示 Array 0 gt fName 1 gt lName 2 gt city 第二个是一个名为 query data 的多维数组 如下所示
  • 网站性能测试:如何最好地估计计算机性能?

    我的网页中有一些浏览器密集型 CSS 和动画 我想确定用户是否拥有快速的 PC 以便我可以相应地缩放内容以提供最佳体验 我在用http Detectmobilebrowser com http detectmobilebrowser com
  • 使用 LSTM 教程代码来预测句子中的下一个单词?

    我一直在尝试理解示例代码https www tensorflow org tutorials recurrent https www tensorflow org tutorials recurrent你可以在以下位置找到https git
  • 关于创建列的SettingWithCopyWarning [重复]

    这个问题在这里已经有答案了 我正在尝试为我的数据创建一个名为 mv avg 的移动平均列 我收到一个无法修复的SettingWithCopyWarning 我可以抑制警告 但我无法弄清楚我在代码中的何处创建副本 并且我想利用最佳实践 我在下
  • 使用同一个 var 关键字初始化多个 JavaScript 变量有什么好处?

    当我阅读由显然非常擅长的人编写的干净的 javascript 代码时 我经常看到这种模式 var x some initialization method y something els z 相对于写有什么好处 var x some ini
  • 如何在 Angular2 中创建结构组件

    我创建了一个结构指令 可以添加或删除应用它的元素 现在 我希望该指令将内容添加到应用它的元素中 但使用指令似乎不可能 因为它没有自己的模板 也许我应该创建一个组件而不是指令 这个官方指南似乎暗示了这一点 https angular io d
  • Hashicorp Vault AppRole:角色 ID 和秘密 ID

    我有一个 Django 应用程序 我希望它能从 Vault 获取所有需要的秘密 据我了解我需要使用AppRole https www vaultproject io docs auth approle html为了这 我创建了一个角色 但后
  • Android 选择电子邮件意图

    我想从联系人列表中选择一封电子邮件 选择一个联系人还不够好 因为一个联系人可能有多个电子邮件地址 使用 API 演示 我成功地选择了联系人 电话号码 甚至地址 例子 Intent intent new Intent Intent ACTIO
  • 尽管有 RxJava,Android 中还是会出现 UI 阻塞

    我正在使用 RxJava 将网络访问移至 Android 中的单独线程 但我的 UI 仍然阻塞 我没有使用错误的可观察值 如下所示 Android RxJava 非阻塞 https stackoverflow com questions 2
  • XPath 选择带句点的节点

    我有一个 XML 文档 其中一些节点有 以他们的名义
  • 如何使用 anaconda python 启用代理服务器

    我们正在尝试通过代理服务器让 conda 安装 在 Windows 8 上 在防火墙后面工作 目前 我们可以在公司网络上使用 pip 在命令提示符下安装软件包 pip install pandas proxy http abc def xy
  • 更新与 InfluxDB 中的条件匹配的多个字段值

    在InfluxDB测量中 如何更新与查询匹配的点的字段值 这还是吗从 v1 6 开始不容易实现 https github com influxdata influxdb issues 2575 正如 GitHub 票证中的示例所建议的 实现
  • 不设置用户名和电子邮件即可提交

    我试着commit像这样 git commit author Paul Draper lt email protected cdn cgi l email protection gt m My commit message 但我得到 Ple
  • 在 ruby​​ 中以哈希形式返回结构数据

    没有一种方法可以将标准 ruby 结构的数据作为散列 成员 值对 返回 是否有正当理由 看到结构和哈希具有非常相似的用例 我很惊讶不存在这样的方法 还是我真的太盲目了 它很容易实现 我现在已经这样做了 但是标准库中缺乏这样的功能 让我想我可
  • 在扩展之间共享用户默认值

    创建一个 Today 小部件 我正在使用UserDefaults suiteName 保存一些数据 在我使用的主应用程序中UserDefaults standard 扩展程序无法读取 或者可以吗 这就是我使用suiteName 构造函数 用