弹出此错误:
Immutable value of [PrizeItem] only has mutating members named append on the code line : prizesList.append(randomPrize)
func openPrizeBox(){
let prizeCycleCount = randomNumberInRange(8, 20) //<-Returns random Int
let timeInterval = NSTimeInterval(prizeCycleCount)
let prizesList : [PrizeItem] = []
for var i = 0; i < prizeCycleCount; i++ {
let randomPrize = prizeItems[randomNumberInRange(0, prizeItems.count-1)]
prizesList.append(randomPrize) //Shows error here
}
这是奖品结构
struct PrizeItem {
enum Rank {
case Ok
case Good
case Epic
case Rare
case ExtremelyRare
}
var name : String
var description : String
let rank : Rank
var identifier: String
}
数组:
let prizeItems : [PrizeItem] = [
PrizeItem(name: "Laser", description: "Test Item", rank: PrizeItem.Rank.Good, identifier: "laser")
]
如果你能帮助我那就太好了! 非常感谢!!!
最佳答案
当您使用let时,您无法更改或追加或添加新内容到此变量。因此在这一行中:
let prizesList : [PrizeItem] = []
应该改为
var prizesList : [PrizeItem] = []
重要仅当您需要此值保持不变时才使用 let
关于xcode - 数组的不可变值仅具有名为append的可变成员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32232007/