SDK 8.3 不可变值...只有名为“附加”的变异成员

Posted

技术标签:

【中文标题】SDK 8.3 不可变值...只有名为“附加”的变异成员【英文标题】:SDK 8.3 Immutable value ... only has mutating members named 'append' 【发布时间】:2015-04-13 10:43:28 【问题描述】:

我更新到 Xcode SDK 8.3 和 Swift 1.2:我使用新菜单项自动转换:编辑 -> 转换 -> “到最新的 Swift 语法”。它解决了所有问题?错误,但我留下了这个:

“[DetailView]”类型的不可变值只有名为“append”的变异成员

类 DetailView

class DetailView 
    var title: String
    var icon: UIImage
    var fontColor: UIColor
    var highlightOpaqueColor: UIColor

    init(title: String, icon:UIImage, fontColor: UIColor, highlightOpaqueColor: UIColor)
        self.title = title
        self.icon = icon
        self.fontColor = fontColor
        self.highlightOpaqueColor = highlightOpaqueColor



类 DetailViewSteps:DetailView

class DetailViewSteps:DetailView 

    override init(
        title: String,
        icon: UIImage,
        fontColor: UIColor,
        highlightOpaqueColor:UIColor)

            super.init(
                title: title,
                icon: icon,
                fontColor:fontColor,
                highlightOpaqueColor:highlightOpaqueColor,

    

类 DetailViewInstanceList

class DetailViewInstanceList 


    let detailView:[DetailView] = []

class var sharedInstance: DetailViewInstanceList 
    struct Singleton 
        static let instance = DetailViewInstanceList()
    
    return Singleton.instance



    let assets = Assets()

    init()
        println("setting up DetailViewInstanceList")


    var steps = DetailViewSteps(
        title: "Steps",
        icon: UIImage(named: assets.stepsIconFileName)!,
        fontColor: assets.stepsFontColor,
        highlightOpaqueColor: assets.stepsOpaqueColor,


    //Add it to the array
        detailView.append(steps) <-- error!

错误发生在最后一行。我认为用 var steps = DetailViewSteps(... 初始化类可以解决不可变的问题,但是没有。非常感谢任何帮助!谢谢

【问题讨论】:

【参考方案1】:

var detailView:[DetailView] = []

let 是不可变的,var 是可变的。

【讨论】:

啊,对不起,完全失明了。但是为什么在更新到 swift 1.2 之后会出现这个错误呢?有什么想法吗?

以上是关于SDK 8.3 不可变值...只有名为“附加”的变异成员的主要内容,如果未能解决你的问题,请参考以下文章

“结构”的不可变值只有名为“函数”的变异成员

检查脚本附加的每个游戏对象的变量值

将新的不可变映射值附加到不可变列表

java中方法传值小知识解析

分析 1 个可变寄存器指令集?

Java中的String为什么是不可变的? -- String源码分析