2013-02-18 40 views

回答

12

您可以使用集:

NSSet *specIDs = [NSSet setWithArray:specIDarray]; 
NSSet *fileIDs = [NSSet setWithArray:fileIDarray]; 

if ([specIDs isSubsetOfSet:fileIDs]) 
{ 
    // Your file IDs contains every ID found in specIDarray 
} 

對於這種高效地工作,對象最好應NSNumber對象,或者如果它們是自定義對象,他們應該會覆蓋hashisEqual:。套的效率主要取決於有一個好的hash。基礎課程,例如NSNumberNSString等都有很好的散列。

此外,如果你可以直接加載您的ID添加到組,而不是從陣列,因爲這將它們轉換會稍微更有效,但在其他上面大概是因爲它會得到一樣簡單。可能會有更好的專用算法,但如果上述過程太慢,只能探索這些選項。

相關問題