LoginSignup
2

More than 5 years have passed since last update.

Swift 3でオブジェクトの配列の中にプロパティが同一なオブジェクトがすでに存在するか調べる

Last updated at Posted at 2017-03-23

やりたいこと

  • あるクラスのオブジェクトの配列を作りたい。
  • そのなかで、クラスの id が同じオブジェクトはその配列に2つ以上存在しないことを保証したい。

実装

  • Equatableプロトコルを実装しました。
  • static func ==(lhs: Hoge, rhs: Hoge) -> Bool 関数を実装して、何によって同じであるとするのかを決めてあげます。
  • できたら、 contains() を使って判定できます。
Playground.playground
class Hoge {
    let id: Int
    init(_ id: Int) { self.id = id }
}

extension Hoge: Equatable {
    static func ==(lhs: Hoge, rhs: Hoge) -> Bool {
        return lhs.id == rhs.id
    }
}

Hoge(0) == Hoge(0) // => true
Hoge(1) == Hoge(0) // => false

let array = [Hoge(0), Hoge(1), Hoge(2)]

array.contains(Hoge(0)) // => true

参考

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
2