Avec cette classe simple, je reçois l' avertissement du compilateur
Tenter de modifier / accéder
x
à son propre setter / getter
et quand je l'utilise comme ça:
var p: point = Point()
p.x = 12
J'obtiens un EXC_BAD_ACCESS. Comment puis-je faire cela sans soutenir explicitement les ivars?
class Point {
var x: Int {
set {
x = newValue * 2 //Error
}
get {
return x / 2 //Error
}
}
// ...
}
set
vous voulez utiliser didSet
. Les propriétés se comportent différemment dans Swift que dans Objective-C ou dans d'autres langages lorsque vous les implémentez set
. Voir la réponse ci-dessous de @jack et un exemple de didSet
@cSquirrel