iOS Widgets中,只读数据是否必须标记为@State?
In iOS Widgets, do you have to mark read-only data as @State?
通常在 SwiftUI 中,视图拥有并用于呈现视图的数据保存在标有 @State 属性 包装器的私有 属性 中。这告诉系统跟踪对该 属性 的更改,以便它知道何时更新视图。
但是...如果该数据永远不会改变,因此用 let
标记并通过初始化程序设置,您还需要 @State
属性吗?
此外,由于 WidgetKit 的视图在设计上都是不可变的(更不用说 运行 在完全由系统拥有的 separate/isolated 进程中),是否有 ever 将任何与状态相关的修饰符用于专门用于 Widget 的视图的情况?
如果您的 属性 永远不会改变,只需在没有 @State 的情况下声明它并使用 'let'。您可以在创建视图时将其值作为参数传递给初始时间。
通常在 SwiftUI 中,视图拥有并用于呈现视图的数据保存在标有 @State 属性 包装器的私有 属性 中。这告诉系统跟踪对该 属性 的更改,以便它知道何时更新视图。
但是...如果该数据永远不会改变,因此用 let
标记并通过初始化程序设置,您还需要 @State
属性吗?
此外,由于 WidgetKit 的视图在设计上都是不可变的(更不用说 运行 在完全由系统拥有的 separate/isolated 进程中),是否有 ever 将任何与状态相关的修饰符用于专门用于 Widget 的视图的情况?
如果您的 属性 永远不会改变,只需在没有 @State 的情况下声明它并使用 'let'。您可以在创建视图时将其值作为参数传递给初始时间。