セットを使用できます:
NSSet *specIDs = [NSSet setWithArray:specIDarray];
NSSet *fileIDs = [NSSet setWithArray:fileIDarray];
if ([specIDs isSubsetOfSet:fileIDs])
{
// Your file IDs contains every ID found in specIDarray
}
これが効率的に機能するには、オブジェクトは理想的にはオブジェクトである必要があります。NSNumber
カスタム オブジェクトの場合は、 と の両方hash
をオーバーライドする必要がありますisEqual:
。セットの効率は、主にhash
. などの Foundation クラスにNSNumber
はNSString
適切なハッシュがあります。
また、可能であれば、配列から ID を変換するのではなく、ID をセットに直接ロードする方が効率的ですが、それ以外の場合は、上記の方法はおそらく簡単です。パフォーマンスが向上する特殊なアルゴリズムがあるかもしれませんが、上記が遅すぎる場合にのみそれらのオプションを検討してください。