[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アプリ開発者の誰かの役に少しでも立てば良いなぁ〜。
最後までご覧頂きましてありがとうございました。