解析 Swift 錯誤:「Cannot assign to value: ‘X’ is a get-only property」

Swift 是一種強大的程式語言,但是當你嘗試做一些不正確的事情時,它也會給你一些錯誤訊息。其中一個常見的錯誤訊息是「Cannot assign to value: ‘X’ is a get-only property」,這個錯誤訊息表示你嘗試對一個只能讀取的屬性賦值,而不能寫入。

這個錯誤訊息的原因是 Swift 中的屬性可以被定義為只能讀取,而不能寫入。這意味著你可以從屬性中獲取值,但是不能將值寫入屬性中。

舉個例子,假設你有一個名為「Person」的類別,它有一個只能讀取的屬性「name」:

class Person {
    let name: String
    init(name: String) {
        self.name = name
    }
}

在這個例子中,「name」屬性是只能讀取的,因為它被定義為「let」,而不是「var」。如果你嘗試對「name」屬性賦值,你就會得到「Cannot assign to value: ‘name’ is a get-only property」的錯誤訊息:

let person = Person(name: "John")
person.name = "Jane" // Cannot assign to value: 'name' is a get-only property

為了解決這個問題,你可以將「name」屬性定義為「var」,這樣就可以對它賦值:

class Person {
    var name: String
    init(name: String) {
        self.name = name
    }
}

let person = Person(name: "John")
person.name = "Jane" // OK

總而言之,「Cannot assign to value: ‘X’ is a get-only property」是 Swift 中一個常見的錯誤訊息,它表示你嘗試對一個只能讀取的屬性賦值,而不能寫入。要解決這個問題,你可以將屬性定義為「var」,這樣就可以對它賦值。

Categorized in:

Tagged in:

,