これから CoreData のデータを UITableView へ表示させる。UITableView へデータを表示するには最低2つの DataSourceメソッドを実装する必要がある。
- (NSInteger)tableView:(UITableView *)table numberOfRowsInSection:(NSInteger)section;
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath;
これらのメソッドを実装するにあたり、まずはテーブルの件数を取得しよう。
ネットで探してみると "Effecient way to count entities" という記事が見つかった。
(参考)Cocoa CoreData effiecient way to count entities! - Stack Overflow
これを参考に件数取得のコードを書いてみた(というかそのまんまだが)。
- (NSUInteger)getCount
{
NSFetchRequest* request = [[NSFetchRequest alloc] init];
[request setEntity:[NSEntityDescription entityForName:@"Memo"
inManagedObjectContext:managedObjectContext]];
[request setIncludesSubentities:NO];
NSError* error = nil;
NSUInteger count = [managedObjectContext countForFetchRequest:request error:&error];
if (count == NSNotFound) {
count = 0;
}
[request release];
return count;
}
managedObjectContext はメンバ変数として既に用意してあるものとする。
#NSError 変数は以前痛い目にあっているので必ず初期化しておく。
もし条件で絞り込みたい場合は Predicateなどが使える。
(参考)Cocoaの日々 - 2005年10月
0 件のコメント:
コメントを投稿