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

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

這個錯誤訊息的原因是因為 Swift 中的屬性可以被定義為只能讀取,而不能被寫入。這種屬性被稱為「get-only」屬性,它們只能被讀取,而不能被寫入。

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

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

在這個例子中,「name」屬性被定義為「let」,這表示它是一個只能讀取的屬性。如果你嘗試對它賦值,Swift 就會給你一個「Cannot assign to value: ‘X’ 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」的錯誤訊息,那表示你嘗試對一個只能讀取的屬性賦值,而不能寫入。要解決這個問題,你可以將該屬性定義為「var」,這樣就可以對它賦值。

Categorized in:

Tagged in:

,