我试图使用以下代码找到核心数据记录的索引,其中[self numItems]返回记录数。该代码平均需要大约0.2秒才能执行。我有兴趣加快速度。提前谢谢。
- (NSInteger) indexWithTaskID:(NSInteger)eventID
{
for (NSInteger i=0;i<[self numItems];i++) {
NSIndexPath *indexPath = [NSIndexPath indexPathForRow:i inSection:0];
NSManagedObject *managedObject = [self.fetchedResultsController
objectAtIndexPath:indexPath];
NSInteger myEventID = [(NSNumber *)[managedObject valueForKey:@"eventID"] intValue];
if (myEventID == eventID) {
return i;
}
}
return -1;
}
答案 0 :(得分:0)
这有点落后于我的设置,如果你有很多数据,我会尽量避免找到这个索引,但是如果你真的需要知道索引那么你可能会被困在这个搜索中。如果对谓词进行了排序,那么你可以比线性搜索做得更好,也许simple binary search可以做出足够的改进。