Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/performance/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swiftui TimelineProvider中的小部件大小和@Environment值不匹配_Swiftui_Widgetkit - Fatal编程技术网

Swiftui TimelineProvider中的小部件大小和@Environment值不匹配

Swiftui TimelineProvider中的小部件大小和@Environment值不匹配,swiftui,widgetkit,Swiftui,Widgetkit,大家早上好, 我正在使用一个API开发一个小部件,该API根据小部件的大小发送不同大小的数组(小:3条新闻,中:6条新闻,大:9条新闻) 我的印象是,@Environment(\.widgetFamily)var家族和TimelineProvider的timeline函数(我在这里调用API)之间存在问题 实际上,在这个函数中,环境变量始终等于systemMedium大小,尽管小部件的大小是“真实的” 你也有同样的问题吗? 这是已知的苹果病毒吗? 如何解决此错误 感谢您的帮助:在没有看到您的代码

大家早上好,

我正在使用一个API开发一个小部件,该API根据小部件的大小发送不同大小的数组(小:3条新闻,中:6条新闻,大:9条新闻)

我的印象是,
@Environment(\.widgetFamily)var家族
和TimelineProvider的timeline函数(我在这里调用API)之间存在问题

实际上,在这个函数中,环境变量始终等于systemMedium大小,尽管小部件的大小是“真实的”

你也有同样的问题吗? 这是已知的苹果病毒吗? 如何解决此错误


感谢您的帮助:

在没有看到您的代码的情况下,我猜测您没有访问传递到
TimelineProvider
TimelineProviderContext
系列属性

您的
TimelineProvider
应该类似于:

struct MyProvider: TimelineProvider {
    func snapshot(with context: Context, completion: @escaping (Entry) -> ()) {
        fetchNewsArticles(for: context.family) { articles in
              // ...
              completion(...)
        }
    }
}

func fetchNewsArticles(for widgetFamily: WidgetFamily, completion: @escaping ... ) 
{
     switch family {
         case .systemSmall:
         // ...
}


您能显示您的代码吗?从API基本获取,然后我用小部件的三种尺寸进行切换。但它总是会变成中等大小的。。。