gpt4 book ai didi

swift 用户默认 :sharing data via share group doesn't work

转载 作者:行者123 更新时间:2023-11-28 08:45:42 25 4
gpt4 key购买 nike

最近刚开始使用 swifting,在使用应用程序组在 iOS 设备之间共享数据时遇到了问题。

基本上我已经按照以下步骤设置了项目:

[iPhone]

  • 为 iPhone 目标启用应用程序组
  • 初始化数据如下(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);

[观看扩展]

  • 创建新的 watch 扩展目标。
  • 启用应用组。
  • 通过以下代码在上下文唤醒的情况下加载用户默认数据:

    sharedDefaults = NSUserDefaults.init(suiteName: groupID);
    sharedDefaults?.synchronize();
    let str = sharedDefaults?.valueForKey("test")
    print(str);

我先运行 iPhone 目标,然后运行 ​​watch 应用程序。但是, watch 应用无法从用户默认值中读取预期数据。

我也把测试项目上传到了Github,如果你对这个问题有什么想法请告诉我。

[Github]

https://github.com/mattcn/WatchOS_DataSharing

提前感谢您的帮助。

最佳答案

在 Watch OS1 中这行得通,但在 Watch OS2 中发生了一些变化。您需要使用一种叫做 WatchConnectivity 的东西来将您想要保存的数据发送到 watch 。因此,即使您使用共享用户默认设置或应用组,您放入其中的数据也会在 watch 上,因此无法从 iOS 应用访问。

要向 watch 发送数据,您可以使用 WatchConnectivity 框架。

关于 swift 用户默认 :sharing data via share group doesn't work,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35432006/

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