這是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