xcode - 数组的不可变值仅具有名为append的可变成员

标签 xcode swift ios8 xcode6 syntax-error

弹出此错误:

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/

相关文章:

ios - 带边距的 UIImageView 的自动布局约束

ios - TabBar Controller 中的暗状态栏?

objective-c - Xcode自定义 header 模板: ___DATE___ format

swift - 如何使用 Swift 在 Xcode 6 中执行自动转场?

ios - 当我设置约束时,为什么我的 UITableView 将自身报告为 600x600,或者 Storyboard 中的内容?

ios - react 原生 : change background color of initial loading view

iphone - 隐藏底栏导航 Controller

iphone - 检查 last.fm 返回的 json 中是否存在 key

php - Alamofire 通过 .POST 上传到 PHP。上传的文件在哪里?

swift - 在 Core Bluetooth 的中央显示 CBService 和 CBCharacteristic 名称的问题