1. ホーム
  2. objective-c

[解決済み] Cocoa Core Dataでエンティティのカウントを効率的に行う方法

2022-04-21 06:12:01

質問

Core Dataについていろいろ読みましたが、Entity-Typeのカウントを効率的に行う方法はありますか(SQLがSELECT count(1) ...でできるようなもの)?今、私はちょうどこのタスクを解決しました。 NSFetchedResultsController のカウントを取得し NSArray ! きっとこれがベストな方法ではないのでしょうが...。

解決方法は?

NSFetchedResultsControllerを使うことが、あなたの目的を達成するために最も効率的な方法かどうかはわかりません(でも、そうかもしれません)。エンティティインスタンスの数を取得するための明示的なコードは以下のとおりです。

// assuming NSManagedObjectContext *moc

NSFetchRequest *request = [[NSFetchRequest alloc] init];
[request setEntity:[NSEntityDescription entityForName:entityName inManagedObjectContext:moc]];

[request setIncludesSubentities:NO]; //Omit subentities. Default is YES (i.e. include subentities)

NSError *err;
NSUInteger count = [moc countForFetchRequest:request error:&err];
if(count == NSNotFound) {
  //Handle error
}

[request release];