与 AppGroup 共享数据
Sharing Data with AppGroup
我想将一个变量从我的 UIKit 文件共享到我使用 SwiftUI 创建的小部件扩展。
I followed this here.请看J Arango的回答
但我不明白那里的最后一部分。
我必须使用 import MySharedObjects
.
所以我这样做了:
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
- 调用中缺少参数参数
- 插入自:<#Decoder#>
- 我使用
do
部分的预期声明。
- 在您的主应用程序中将数据保存到
UserDefaults
:
UserDefaults(suiteName: <your_app_group>)!.set("test", forKey: "test")
- 从您的小部件中的
UserDefaults
读取数据:
let testStr = UserDefaults(suiteName: <your_app_group>)!.string(forKey: "test")
如果您想保存其他类型,请参阅:
我想将一个变量从我的 UIKit 文件共享到我使用 SwiftUI 创建的小部件扩展。 I followed this here.请看J Arango的回答
但我不明白那里的最后一部分。
我必须使用 import MySharedObjects
.
所以我这样做了:
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
- 调用中缺少参数参数
- 插入自:<#Decoder#>
- 我使用
do
部分的预期声明。
- 在您的主应用程序中将数据保存到
UserDefaults
:
UserDefaults(suiteName: <your_app_group>)!.set("test", forKey: "test")
- 从您的小部件中的
UserDefaults
读取数据:
let testStr = UserDefaults(suiteName: <your_app_group>)!.string(forKey: "test")
如果您想保存其他类型,请参阅: