【发布时间】:2020-09-21 15:52:12
【问题描述】:
我想将我的 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 位置的额外参数
- 调用中的参数缺少参数
- 插入自:
- 我使用
do部分的预期声明。
【问题讨论】:
-
这可能会对您有所帮助:Share data between main App and Widget in SwiftUI for iOS 14 如果它只是一个变量,您可以使用共享的
UserDefaults。为什么需要MySharedObjects? -
我不得不承认我不明白这个人在解释什么。他是在创建一个文本文件并将数据存储在那里吗?