【问题标题】:Someone facing issues with widgets not working only on some Apple devices?有人面临小部件不能仅在某些 Apple 设备上运行的问题?
【发布时间】:2021-05-01 23:18:51
【问题描述】:

我有一些应用程序,其中大多数都有使用 Coredata 的小部件,获取的数据按预期显示,并且这些应用程序具有相同的 Coredata 基本代码,用于获取信息并将信息显示到小部件中。占位符和快照工作正常,小型、中型和大型小部件在 iPhone X、iPhone 7 Plus 上按预期工作,但在 iPhone 12 和 iPad Air 2 上不工作。 在使用的代码和屏幕截图下方,可以对问题有所了解。

有什么想法吗?

func getTimeline(in context: Context, completion: @escaping (Timeline<Entry>) -> ()) {
    
    var entries: [WidgetContent] = []
    
    let managedObjectContext = PersistenceController.shared.container.viewContext
    
    let request = NSFetchRequest<NSFetchRequestResult>(entityName: "Item");
    
    let currentDate = Date()
    
    for hourOffset in 0 ..< 3 {
        
        let entryDate = Calendar.current.date(byAdding: .hour, value: hourOffset, to: currentDate)!
        
        var entry = snapshotEntry
        
        var results = [Item]()
        
        do { results = try managedObjectContext.fetch(request) as! [Item] }
        
        catch let error as NSError { print("Could not fetch \(error), \(error.userInfo)") }
        
        let randomIndex = results.randomElement()
        
        let displayPic = randomIndex!.pic
        let displayTimestamp = randomIndex!.timestamp
        let displayTitle = randomIndex!.title
        
        entry = WidgetContent(date: entryDate, pic: displayPic, timestamp: displayTimestamp!, title: displayTitle!)
        
        entries.append(entry)

    }
    
    let timeline = Timeline(entries: entries, policy: .atEnd)
    
    completion(timeline)
}

【问题讨论】:

  • 我建议删除所有强制展开以确保您的小部件不会崩溃。

标签: iphone ipad core-data swiftui widgetkit


【解决方案1】:

感谢您的帮助,安装 14.5 beta 后问题已得到解决。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-16
    • 2018-04-01
    • 2021-03-14
    • 2014-01-08
    • 1970-01-01
    相关资源
    最近更新 更多