我有一個類別數組,和另一個類別ID數組。我想抽出具有匹配ID的類別。目前,我的代碼看起來有點像這樣:如何使用NSPredicate加速我的數組搜索?
- (NSArray *)categoriesFromArray:(NSArray *)categories withIDs:(NSArray *)categoryIDs {
NSMutableArray *categoriesWithIDs = [NSMutableArray array];
for (SGBCategory *category in categories) {
for (NSNumber *categoryID in categoryIDs) {
if ([category.categoryID isEqual:categoryID]) {
[categoriesWithIDs addObject:category];
break;
}
}
}
return categoriesWithIDs;
}
Ewww,我知道。所以我想要做的就是像SELECT * FROM categories WHERE categories.categoryID in (categoryIDs)
這樣的SQL。我認爲NSPredicate是表達這種事情的客觀方式,但我不知道如何讓它做我想做的事情。如何使用NSPredicate加速我的數組搜索?
謝謝 - 雖然這改變了方法的簽名,所以它對我們來說不可行。 – Simon 2012-04-24 10:34:16
@Simon:這是一種新方法,所以它不會改變簽名。不過,我會稍微修改我的答案以幫助。 – JeremyP 2012-04-24 10:38:22