Subscribed unsubscribe Subscribe Subscribe

NSSetのintersectsSetとNSMutableSetのintersectSet

Objective-C

"intersect"の後に"s"が付くか付かないかだけの紛らわしい名前なので注意。
NSSetのインスタンスメソッド"intersectsSet"は、「対象のNSSetインスタンスと、引数で渡したNSSetインスタンスで共通の要素を含んでいるか否かをBOOL値で返す」というメソッド。
NSMutableSetのインスタンスメソッド"intersectSet"は、「対象のNSSetインスタンスから、引数で渡したNSSetインスタンスと共通で含む要素だけを残して他の要素を削除する」というメソッド。何も返さない。

NSSetインスタンスに対してintersectSetを間違って呼ぼうとした場合はコンパイラが警告だしてくれるだろうけど、逆の場合(NSMutableSetからintersectsSetを呼ぶの)は問題なく実行できてしまう。ただ2つのSetの論理積を取るつもりで実行しても何も起こらずBOOL値を返すだけ、となってしまう。
間違わないように気をつけよう。