ios - 在目标之间共享 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
}
这是应用程序组(为每个目标设置!):
解决方案
据此:_
现代版本的 watchOS 在 Apple Watch 上运行您的 WatchKit 扩展。因此,您不能通过 App Group 在您的 iOS 应用程序和 WatchKit 扩展程序之间共享内容;您将不得不使用某种网络技术。许多人为此使用 WatchConnectivity。
// 我浏览了很多在线教程……</p>
听起来这些教程是为旧版本的 watchOS 编写的,WatchKit Extension 在 iPhone 上运行。从那以后就没有这种情况了watchOS 2
。
推荐阅读
- pandas - 向 seaborn 中的子图添加误差线时出错
- android - How to autogenerate a Room database id without providing an id
- javascript - 从 API 发送和获取数据
- python - 尝试自动化浏览器时 Selenium 中的 ElementNotInteractableException
- python - 对csv文件Python 3.8的情绪分析
- android - 应用程序未使用应用程序 Google Play 应用程序英文标题在 Play 商店中搜索
- javascript - 为什么作为主体的 REST API 未定义?
- python - Python Hackerrank挑战给出了〜stdout没有响应〜错误
- java - REST API 请求
- wordpress - 在 Wordpress 中使用带有可见 API 密钥的 WP Super Cache 的单个 Cloudflare 帐户