OzB*_*Boz 4 iphone core-data objective-c ios
我试图限制对象数组,以[NSArray filteredArrayUsingPredicate]获得更好的性能.
我的代码:
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SELF.Name contains[c] %@", searchText];
NSArray *filteredArray = [self.dataArray filteredArrayUsingPredicate:predicate];
Run Code Online (Sandbox Code Playgroud)
我dataArray包含大约30.000个对象,我想限制结果数组50.(我发现50匹配后我需要一些break语句.)我怎样才能实现这个目标?
使用简单的for-in循环,NSMutableArray构建器和-[NSPredicate evaluateWithObject:]方法.
NSMutableArray *builder = [NSMutableArray arrayWithCapacity:50];
for (id object in array) {
if ([predicate evaluateWithObject:object]) {
[builder addObject:object];
if (builder.count >= 50) break;
}
}
Run Code Online (Sandbox Code Playgroud)
我注意到你标记了这个问题Core Data.如果你可以使用NSFetchRequest,那么只需将其设置fetchLimit为50.