LoginSignup
0
2

More than 1 year has passed since last update.

[Swift]配列の中身で一致する型を検索する

Last updated at Posted at 2022-12-03

先程コードを書いているとき、こんなことを思いました。
「クラスを配列でまとめているとき、あるclassが存在するときだけ特定の処理をしたいなあ」と。

具体的にはこんな具合です。
5個の異なるTableViewCellなどを配列として持たせておいて、〇〇Cellが含まれるときにだけ、配列の0番目に別のCellを追加したい
といった感じです。

サンプルコード

//Cellしか持たない配列を5つ用意する
final class A: UITableViewCell {}
final class B: UITableViewCell {}
final class C: UITableViewCell {}
final class D: UITableViewCell {}
final class E: UITableViewCell {}

// 今回0番目に差し込みたいCell
final class InsertCell: UITableViewCell {}

private var cellArray = [A(), B(), C(), D(), E()]

if cellArray.contains(where: { $0 is E }) { //Eが含まれる場合にInsertCellを差し込みたい
    // 配列の0番目に追加する
    cellArray.insert(InsertCell(), at: 0)
}  else {
    print("配列にEのCellが含まれない")
}

ここでもポイントはisになります。
isを用いることがインスタンスに対して型をチェックすることができます。
通常何か比較してチェックしたい場合はhoge == fooと書きますが、クラスや構造体の比較に==は基本的に行えません。(もちろん行う方法もありますがここでも説明は割愛します。)
そこでisを使用することで簡単に型チェックを行うことができるというわけです。

0
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
2