0
我有一個方法檢查組元件匹配謂詞的存在
- (BOOL)isLockedDueToSamples
{
if ([self.samples count] > 0)
{
NSPredicate* p = [NSPredicate predicateWithFormat:@"appraised == YES OR analysed == YES"];
if ([[self.samples filteredSetUsingPredicate:p] count] > 0)
return YES;
}
return NO;
}
這種方法需要進行相當頻繁調用,但速度很慢,因爲self.samples可高達1500是否有檢查的技術是否存在與謂詞相匹配的集合元素,而不必過濾整個集合?
編輯:
我已經成功地使該方法稍快,這樣
- (BOOL)isLockedDueToSamples
{
if ([self.samples count] > 0)
{
for (Sample *sample in self.samples)
{
if (sample.appraised || sample.analysed)
{
return YES;
}
}
}
return NO;
}
你可以嘗試objectsPassingTest :,但我不認爲這會比你的循環更快。 – rdelmar