この単純なクラスでは、コンパイラの警告が表示されます
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
