最近刚开始 swift 并通过使用应用程序组在 iOS 设备之间共享数据遇到了问题。
基本上我已经按照以下步骤设置了项目:
[苹果手机]
- 为 iPhone 目标启用 App Group
下面的初始数据(groupID 与我在项目中设置的匹配):
sharedDefaults = NSUserDefaults.init(suiteName: groupID) sharedDefaults?.setObject("User Default Shared String", forKey: "test") sharedDefaults?.synchronize()
通过在本地加载用户默认值来仔细检查测试字符串,该字符串能够显示在日志中。
let t_sharedDefaults = NSUserDefaults.init(suiteName: groupID); t_sharedDefaults?.synchronize(); let str = t_sharedDefaults?.valueForKey("test") as! String; print(str);
[手表延长]
- 创建一个新的监视扩展目标。
- 启用应用程序组。
通过以下代码在上下文中加载用户默认数据:
sharedDefaults = NSUserDefaults.init(suiteName: groupID); sharedDefaults?.synchronize(); let str = sharedDefaults?.valueForKey("test") print(str);
我先运行 iPhone 目标,然后运行手表应用程序。但是,手表应用程序无法从用户默认值中读取预期数据。
我也在 Github 上传了测试项目,如果您对这个问题有任何想法,请告诉我。
[Github]
https://github.com/mattcn/WatchOS_DataSharing
提前感谢您的帮助。