このチュートリアルを複製して、objective-C で糸車を作ろうとしています。しかし、目的のcでswiftの計算されたプロパティを変換する方法がわかりません。以下のコードのように、計算された変数でinvalidateLayoutメソッドを呼び出すことができるように、objective-cでradius変数を宣言するにはどうすればよいですか?
var radius: CGFloat = 500 {
didSet {
invalidateLayout()
}
}
このチュートリアルを複製して、objective-C で糸車を作ろうとしています。しかし、目的のcでswiftの計算されたプロパティを変換する方法がわかりません。以下のコードのように、計算された変数でinvalidateLayoutメソッドを呼び出すことができるように、objective-cでradius変数を宣言するにはどうすればよいですか?
var radius: CGFloat = 500 {
didSet {
invalidateLayout()
}
}
厳密に言えば、あなたの例は計算されたプロパティではありません
とにかくObjective-Cの同等物は
@property (assign, nonatomic) CGFloat radius;
ある時点でインスタンス変数を介して初期値を設定し、初期化時にinvalidateLayout
メソッドを呼び出さない動作を取得します。
_radius = 500.0;
そして、セッターを実装します
- (void)setRadius:(CGFloat)radius
{
if (_radius != radius) {
_radius = radius;
[self invalidateLayout];
}
}
invalidateLayout
値が変わらなくても常に呼び出す必要がある場合は、if
チェックを外します。