我有一个简单的结构体。
struct Section {
let store: Store
var offers: [Offer]
}
在VC中,我在顶部声明了一个这些
Section
的数组,像这样:fileprivate var sections: [Section] = []
。并且我在viewDidLoad()
中添加一些Section
对象。稍后,我需要从某些
Section
内的offers
数组中删除一些Offer
对象。我遍历
sections
数组来找到包含需要删除Offer
的Section
。for section in sections {
if let i = section.offers.index(where: { $0.id == offer.id }) {
section.offers.remove(at: i) // Cannot use mutating member on immutable value: 'section' is a 'let' constant
}
}
但是当我尝试从offers
数组中删除特定的Offer
时,我会收到错误信息Cannot use mutating member on immutable value: 'section' is a 'let' constant。
我该如何解决这个问题呢?
struct
是值类型,所以您需要稍后使用编辑过的值更新数组:sections[index] = section
。 - mag_zbc