1. ホーム
  2. アイオス

[解決済み】SwiftでisKindOfClassを使う。

2022-04-03 11:01:43

質問

私はSwift langを少し拾おうとしているのですが、以下のObjective-CをSwiftに変換する方法について悩んでいます。

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
    [super touchesBegan:touches withEvent:event];

    UITouch *touch = [touches anyObject];

    if ([touch.view isKindOfClass: UIPickerView.class]) {
      //your touch was in a uipickerview ... do whatever you have to do
    }
}

具体的には isKindOfClass を新しい構文で使うことができます。

override func touchesBegan(touches: NSSet, withEvent event: UIEvent) {

    ???

    if ??? {
        // your touch was in a uipickerview ...

    }
}

解決方法は?

Swift の適切な演算子は is :

if touch.view is UIPickerView {
    // touch.view is of type UIPickerView
}

もちろん、ビューを新しい定数に割り当てる必要もある場合は if let ... as? ... 構文は、Kevinが言ったように、あなたのものです。しかし、もし値が必要なく、型をチェックするだけなら is 演算子を使用します。