[XODE] CoreDataで保存したデータ件数を取得する方法
こんにちは、@yoheiMuneです。
今日は、CoreDataを用いたデータ管理を行う際に、保存したデータ件数を取得する方法をブログに書きたいと思います。
ライトなネタですが、こんなやり方をするのかーと新発見だったので、ブログにも書きたいと思った次第です(*゚▽゚)ノ

詳細な説明は、以下APIリファレンスをご確認ください。
NSManagedObjectContext API Reference
具体的には、以下のように使います。
iPhoneアプリ開発者の誰かの役に少しでも立てば良いなぁ〜。
最後までご覧頂きましてありがとうございました。
今日は、CoreDataを用いたデータ管理を行う際に、保存したデータ件数を取得する方法をブログに書きたいと思います。
ライトなネタですが、こんなやり方をするのかーと新発見だったので、ブログにも書きたいと思った次第です(*゚▽゚)ノ

CoreDataでデータ件数を取得する方法
CoreDataでデータ件数を取得する為に、専用のメソッドが用意されています。NSManagedObjectContext#countForFetchRequest:error:上記APIは、引数にリクエストを渡して、その条件に合致する件数を得るというメソッドです。
詳細な説明は、以下APIリファレンスをご確認ください。
NSManagedObjectContext API Reference
具体的には、以下のように使います。
// 検索リクエストのオブジェクトを生成します。
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
// 対象エンティティを指定します。
NSEntityDescription *entity
= [NSEntityDescription entityForName:@"SyncTask" inManagedObjectContext:managedObjectContext];
[fetchRequest setEntity:entity];
// キャッシュサイズや上限を指定します。
[fetchRequest setFetchBatchSize:20];
[fetchRequest setFetchLimit:0];
// 検索条件を指定します。
NSPredicate *pred
= [NSPredicate predicateWithFormat:@"isError = 0"];
[fetchRequest setPredicate:pred];
// ソート条件を指定します。
NSSortDescriptor *sort = [[NSSortDescriptor alloc] initWithKey:@"priority" ascending:NO];
[fetchRequest setSortDescriptors:[NSArray arrayWithObject:sort]];
// 上記リクエストを元に件数を取得します。
NSError *error = nil;
int count = [managedObjectContext countForFetchRequest:fetchRequest error:&error];
// エラーがあった場合には、エラー情報を表示する。
if (error) {
NSLog("error occurred. error = %@", error);
}
NSFetchRequestの生成や設定情報は普通のselectと同じで、
呼び出すメソッドだけ変えると件数取得をすることが出来ます。便利ー(*゚▽゚)ノ最後に
簡単な内容ですが、日本語記事が少なかったのでブログに記載してみました。iPhoneアプリ開発者の誰かの役に少しでも立てば良いなぁ〜。
最後までご覧頂きましてありがとうございました。