【问题标题】:WidgetKit - Intents - widget user setting lost after core data updateWidgetKit - Intents - 核心数据更新后小部件用户设置丢失
【发布时间】: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)
    }
}

即使我对该条目执行核心数据更新,有没有办法保持小部件设置持续存在?我的意思是标识符和标题甚至不会改变。

小部件设置页面1 核心数据更新前的选定设置2 核心数据更新后的设置-丢失参考3

    标签: swift widgetkit


    【解决方案1】:

    解决了。为小部件列表创建了一个新的数据库条目。如果数据库中有一些更改,则该列表不会更新,因此小部件用户选择不会更改。

    【讨论】:

      猜你喜欢
      • 2016-03-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-02-05
      • 2013-02-22
      • 1970-01-01
      • 1970-01-01
      • 2021-03-10
      相关资源
      最近更新 更多