Dzięki tej prostej klasie otrzymuję ostrzeżenie kompilatora
Próba modyfikacji / dostępu
x
w ramach własnego setera / gettera
a kiedy używam tego w ten sposób:
var p: point = Point()
p.x = 12
Dostaję EXC_BAD_ACCESS. Jak mogę to zrobić bez wyraźnego tworzenia kopii zapasowych?
class Point {
var x: Int {
set {
x = newValue * 2 //Error
}
get {
return x / 2 //Error
}
}
// ...
}
set
którego chcesz używać didSet
. Po wdrożeniu właściwości zachowują się inaczej w Swift niż Objective-C lub innych językach set
. Zobacz odpowiedź poniżej z @jack i przykład didSet
z @cSquirrel