这是在 iOS 上。
我有一个包含大约 350 000 个对象的核心数据库。对象(产品)有两个属性:“条形码”和“名称”。用户可以通过搜索“Barcode”来搜索对象,应该返回“Designation”。一切正常,只是速度很慢。我使用的代码是:
NSEntityDescription *_product = [NSEntityDescription entityForName:@"Product" inManagedObjectContext:importContext];
NSFetchRequest *fetch = [[NSFetchRequest alloc]init];
[fetch setEntity:_product];
[fetch setPredicate:[NSPredicate predicateWithFormat:@"Barcode == %@",theBarcode]];
NSError *error = nil;
NSArray *results = [importContext executeFetchRequest:fetch error:&error];
NSManagedObject *object = [results objectAtIndex:0];
由于我只想获取一个对象,有没有办法加快速度?
如果我在启动时将每个对象加载到一个数组中,我的应用程序启动速度会非常慢,并且会占用大量 RAM。
提前致谢!
编辑:我添加了 [fetch setFetchLimit:1]; 这加快了一点。但是对象在数据库中越往下,速度就越慢。