【发布时间】:2015-08-29 23:30:40
【问题描述】:
我有一个错误,我一直在尝试解决,但找不到正确的解决方案。提前致谢!
struct PrizeItem {
enum Rank {
case Ok //Purple
case Good //Blue
case Epic //Green
case Rare //Yellow
case ExtremelyRare //Red
}
let name : String
let description : String
let rank : Rank
let identifier : String
let color : UIColor
var prizeIsActive : Bool! //<-- Important
//Important Functions
mutating func setToActive(){
prizeIsActive = true
}
mutating func setToNotActive(){
prizeIsActive = false
}
}
现在当我尝试运行这个函数时:
func setPrizeToActive(prize:PrizeItem){
prize.setToActive() <-- error here
}
错误说明如下:
PrizeItem 类型的不可变值只有名为 setToActive 的变异成员
感谢您的帮助!
【问题讨论】:
-
您应该将 Rich 的答案标记为正确。
-
之前的答案不像你预期的那样工作。详情见我的回答。
-
上面的代码提出了几个问题。为什么你想要只存在改变公共 Bool 值的函数?我也会质疑隐式展开 Bool 的想法...
标签: ios xcode swift ios8 xcode6