この単純なクラスでは、コンパイラの警告が表示されます
x
独自のセッター/ゲッター内で変更/アクセスを試みる
そして私がこのようにそれを使うとき:
var p: point = Point()
p.x = 12
EXC_BAD_ACCESSを取得します。明示的なバッキングivarなしでこれを行うにはどうすればよいですか?
class Point {
var x: Int {
set {
x = newValue * 2 //Error
}
get {
return x / 2 //Error
}
}
// ...
}
set
あなたがを使用したいのではなく、混乱を招きますdidSet
。Swiftでのプロパティの動作は、Objective-Cや他の言語とは異なりますset
。@jackからの回答と@cSquirrelからの例をdidSet