SwiftUI如何更改for循环中的值
Posted
技术标签:
【中文标题】SwiftUI如何更改for循环中的值【英文标题】:SwiftUI How to change Value in for Loop 【发布时间】:2021-08-04 15:14:53 【问题描述】:我目前正在开发一款订餐应用。 我遇到了以下问题。 这是相关代码的一部分
I have a button at the top right to change enum Foodstage to .main
@Published var cartexpress : [CartModel] = []
enum Foodstage : Codable,CaseIterable
case Starter,Second, Main,SpecialMenu,Drinks, Extra
struct CartModel : Codable,Identifiable,Equatable
var id = UUID().uuidString
var name : String
var quantity : Int
var price : Double
var type : Foodstage
var date: Date
var extra : [String]
```
the error appears when I want to use for In loop to the the Food Stage
``` func CookTogether()
cartexpress.forEach type in
return type.type = .Main
错误代码是无法分配给属性:'type' is a 'let' constant。
请谁能教我如何解决这个问题。 非常感谢。
【问题讨论】:
【参考方案1】:在 forEach
中,您正在创建一个新变量 - type
。但是,这是恒定的,CartModel
是 struct
,这意味着我们不能只更改属性,因为它不是引用类型。
您可以做的是遍历cartexpress
的索引(类似于0 ..< cartexpress.count
)并为数组中的每个元素设置type
属性。
试试下面的代码:
for index in cartexpress.indices
cartexpress[index].type = .main
按照惯例,我使用 .main
作为枚举案例名称,而不是 .Main
。
【讨论】:
以上是关于SwiftUI如何更改for循环中的值的主要内容,如果未能解决你的问题,请参考以下文章
根据一维数组中的值更改二维numpy数组中的某些值而无需for循环