За допомогою цього простого класу я отримую попередження про компілятор
Спроба змінити / отримати доступ
x
у межах власного сетера / геттера
і коли я використовую його так:
var p: point = Point()
p.x = 12
Я отримую EXC_BAD_ACCESS. Як я можу це зробити без явного резервного копіювання?
class Point {
var x: Int {
set {
x = newValue * 2 //Error
}
get {
return x / 2 //Error
}
}
// ...
}
set
ви хотіли використовувати didSet
. Властивості поводяться по-різному в Swift, ніж Objective-C або інших мовах, коли ви реалізуєте set
. Дивіться відповідь нижче від @jack та приклад didSet
@cSquirrel