这是iOS版本。加速核心数据提取
我有一个大约有350 000个对象的核心数据库。对象(产品)具有两个属性:“条形码”和“名称”。用户可以通过搜索“条形码”搜索对象,并返回“指定”。一切工作正常,除非它很慢。我使用的代码是:
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];
因为我只希望获取一个对象,是有办法加快步伐?
如果我在启动时将每个对象加载到一个Array中,我会得到一个非常缓慢的应用程序启动并占用大量内存。
在此先感谢!编辑:我添加了[fetch setFetchLimit:1];这加快了一点点。但是,数据库中的对象所处的速度越来越慢。
只想问一下(可能会有帮助)为什么在每次启动时将所有数据加载到数组? – shannoga 2010-12-13 15:54:02
我不这样做。但我说,如果我这样做,那么我会有一个缓慢的启动:) – Mikael 2010-12-13 16:22:17