Sobes.tech
Junior — Middle

Kun je extra eigenschappen toevoegen aan bestaande klassen of objecten via uitbreidingen?

sobes.tech AI

Antwoord van AI

In Swift maken extensies het mogelijk om nieuwe methoden, berekende eigenschappen en initializers toe te voegen aan bestaande klassen, structuren en enumeraties, maar het is niet mogelijk om opgeslagen eigenschappen toe te voegen.

Dat wil zeggen, je kunt geen extra opgeslagen eigenschappen toevoegen via een extensie, maar je kunt wel berekende eigenschappen toevoegen die gebaseerd zijn op bestaande gegevens.

Voorbeeld van een berekende eigenschap in een extensie:

extension String {
    var isPalindrome: Bool {
        return self == String(self.reversed())
    }
}

Als je opgeslagen eigenschappen wilt toevoegen, gebruik je meestal geassocieerde objecten (associated objects) in de Objective-C runtime, maar dit is geen standaardmethode en wordt niet direct ondersteund in Swift.