Swift 与AppGroup共享数据

Swift 与AppGroup共享数据,swift,swiftui,widgetkit,Swift,Swiftui,Widgetkit,我想将UIKit文件中的一个变量共享到使用SwiftUI创建的小部件扩展名。 请看J Arango的答案 但是我不明白最后一部分。 我必须使用导入我的共享对象 所以我这样做了: import MySharedObject struct testing { let mySharedObject = MySharedObject(name: "My Name", lastName: "My Last Name")

我想将UIKit文件中的一个变量共享到使用SwiftUI创建的小部件扩展名。 请看J Arango的答案

但是我不明白最后一部分。 我必须使用
导入我的共享对象

所以我这样做了:

    import MySharedObject

struct testing {
    let mySharedObject = MySharedObject(name: "My Name", lastName: "My Last Name")
                       
     do {
         let data = try JSONEncoder().encode(mySharedObject)
    
          /// Make sure to use your "App Group" container suite name when saving and retrieving the object from UserDefaults
          let container = UserDefaults(suiteName:"group.com.widgetTest.widgetContainer")
              container?.setValue(data, forKey: "sharedObject")
                            
          /// Used to let the widget extension to reload the timeline
          WidgetCenter.shared.reloadAllTimelines()
    
          } catch {
            print("Unable to encode WidgetDay: \(error.localizedDescription)")
       }
}
但是我得到了以下错误

  • 调用中位置#1,#2处的额外参数
  • 调用中缺少参数的参数
  • 插入:
  • 使用
    do
    部分的预期声明
  • 将数据保存到主应用程序中的
    UserDefaults
  • 如果要保存其他类型,请参阅:


    这可能会对您有所帮助:如果它只是一个变量,您可以使用shared
    UserDefaults
    。你为什么需要我的共享对象呢?我必须承认我不明白那个人在解释什么。他正在创建一个文本文件并将数据存储在那里吗?它成功了,谢谢。这比我想象的要简单得多。我用主应用程序作为SwiftUI和小部件作为SwiftUI对它进行了测试。我明天会检查这是否也适用于我的主要应用程序作为故事板和小部件作为SwiftUI。
    UserDefaults(suiteName: <your_app_group>)!.set("test", forKey: "test")
    
    let testStr = UserDefaults(suiteName: <your_app_group>)!.string(forKey: "test")