これはiOS上にあります。
約350000個のオブジェクトを持つコアデータベースがあります。オブジェクト(製品)には、「バーコード」と「指定」の2つのプロパティがあります。ユーザーは「バーコード」を検索してオブジェクトを検索でき、「指定」が返されます。遅いことを除いて、すべてが正常に機能しています。私が使用するコードは次のとおりです。
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];
オブジェクトを1つだけフェッチしたいのですが、それを高速化する方法はありますか?
起動時にすべてのオブジェクトを配列にロードすると、アプリの起動が非常に遅くなり、大量のRAMが使用されます。
前もって感謝します!
編集:[fetch setFetchLimit:1]を追加しました; 少しスピードアップします。ただし、オブジェクトがデータベース内で下がるほど、速度は遅くなります。