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