gpt4 book ai didi

swift - WatchOS 2 中的 NSUserDefaults 和应用程序组

转载 作者:行者123 更新时间:2023-11-30 13:53:02 25 4
gpt4 key购买 nike

我正在尝试使用 NSUserDefaults 访问我保存在 NSUserDefaults 中的对象。

我到处都找过了,但我一定漏掉了一些东西。希望有人能帮助我。

这就是我所做的。

  • 我使用 Xcode 7.1
  • 我的 bundle 标识符是“com.mycompany.myapp”
  • 我添加了一个 watchkit 应用(新目标)
  • 监视目标的 bundle 标识符为“com.mycompany.myapp.watchkitapp”
  • 扩展程序目标的 bundle 标识符为“com.mycompany.myapp.watchkitapp.watchkitextension”
  • 我在所有 3 个目标中启用了应用组。
  • 所有 3 个目标的应用组 ID 均为:“group.com.mycompany.myapp”
  • “应用组”部分中的所有 3 个步骤均已选中

除了我需要从 watch 访问对象的情况外,我在所有情况下都使用 NSUserDefaults.standardUserDefaults() 。在本例中我使用:

if let userDefaults = NSUserDefaults.init(suiteName: "group.com.mycompany.myapp")
{
userDefaults.setObject(myDate, forKey: UserDefaults.DateKey.rawValue)
userDefaults.synchronize()
}

我可以使用以下代码重新加载此数据:

let mydefaults = NSUserDefaults(suiteName: "group.com.mycompany.myapp")
mydefaults!.synchronize()
let myDict = mydefaults!.dictionaryRepresentation()
for entry in myDict
{
print("ENTRY: \(entry)")
}

工作得很好,但是在我的 watch 扩展 InterfaceController 中的 awakeWithContext 中执行相同的代码只会打印一些默认键。不是我自己设定的。

我基本上只需要访问 iPhone 应用程序中存储的日期。

知道我做错了什么吗?

最佳答案

你不能再使用与watchOS 2共享的应用程序组。至少我还没有找到任何解决方案。据我了解,您现在必须使用 WatchConnectivity。

https://forums.developer.apple.com/thread/3927

关于swift - WatchOS 2 中的 NSUserDefaults 和应用程序组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34017403/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com