【发布时间】:2022-08-14 21:28:11
【问题描述】:
处理包含小部件设置的应用程序。如图所示,用户可以选择不同的选项,如“alpha”或“beta”。列表数据由核心数据提供,可以在主应用程序中进行修改。条目与 uuid 一起存储,因此我可以轻松识别列表项。
问题。假设我在小部件的设置中选择了“Alpha”,小部件从“Alpha”加载设置。都好。
如果我现在更改主应用程序中的整个“字母”并更新核心数据,小部件页面将丢失先前选择的状态“Alpha”。
看起来,一旦执行核心更新更新,设置屏幕就会失去参考。
class IntentHandler: INExtension, SmallWidgetConfigurationIntentHandling, MediumWidgetConfigurationIntentHandling, LargeWidgetConfigurationIntentHandling {
let userData = UserData()
func provideFlapOptionsCollection(for intent: SmallWidgetConfigurationIntent, searchTerm: String?, with completion: @escaping (INObjectCollection<FlapObject>?, Error?) -> Void) {
let data = userData.getUserDataWithPredicate(_type: \"small\")
var symbols: [FlapObject] = []
for item in data {
let ob1 = FlapObject(identifier: item.id, display: item.title)
ob1.message = item.message
ob1.flapid = item.id
symbols.append(ob1)
}
let collection = INObjectCollection(items: symbols)
completion(collection, nil)
}
}
即使我对该条目执行核心数据更新,有没有办法保持小部件设置持续存在?我的意思是标识符和标题甚至不会改变。