SwiftUI ForEach 警告 Non-constant range: argument must be an integer literal

这个 Warning 的字面意思是「非常数范围:参数必须是整数字面量。」所以除非是常数,比如直接用「0..<4」这样的代码消除这个警告,但是大多数情况下,我们不可能去这样写,因为这部分 View 就是动态生成的。

1
2
3
ForEach(0..<4) { index in

}

查阅官方文档:

The instance only reads the initial value of the provided data and doesn’t need to identify views across updates. To compute views on demand over a dynamic range, use ForEach/init(​​).

简单地说,这个方法只会读取提供数据的初始数,如果你不需要 View 在之后发生变化,那么可以用这个方法,

所以只要把代码改成下面这样就可以了:

1
2
3
ForEach(0..<4, id: \.self) { index in

}

SwiftUI ForEach 警告 Non-constant range: argument must be an integer literal
https://wonderhoi.com/2024/12/09/SwiftUI-ForEach-警告-Non-constant-range-argument-must-be-an-integer-literal/
作者
wonderhoi
发布于
2024年12月9日
许可协议