如何解决在目标之间共享 UserDefault 不起作用
在目标之间共享 UserDefault 不起作用。我已经为两个目标设置了应用程序组,但 watchOS 上没有数据。查看我的简化代码:
在 iOS 上:
func application(_ application: UIApplication,didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
let defaults = UserDefaults(suiteName: "group.my-bundle-id")!
defaults.set(true,forKey: "testKey")
return true
}
在 watchOS 上:
func applicationDidFinishLaunching() {
let defaults = UserDefaults(suiteName: "group.my-bundle-id")!
let uddata = defaults.bool(forKey: "testKey")
print(uddata) // Still returns false
}
这是应用组(为EACH 目标设置!):
解决方法
根据this:
现代版本的 watchOS 在 Apple Watch 上运行您的 WatchKit 扩展。因此,您无法通过 App Group 在 iOS 应用和 WatchKit 扩展之间共享内容;你必须使用某种网络技术。许多人为此使用 WatchConnectivity。
// 我在网上浏览了大量教程……
听起来这些教程是为旧版 watchOS 编写的,WatchKit 扩展在 iPhone 上运行。自 watchOS 2
以来,情况并非如此。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。