NSManagedObjectContext
からオブジェクトをフェッチするNSFetchedResultsController
があります。私は結果を使用してUITableViewを生成しています。NSFetchedResultsControllerからUITableViewヘッダーを設定する
私はこれらの2つのソート記述子でフィルタリングしています。
NSSortDescriptor *lastOpened =
[[NSSortDescriptor alloc] initWithKey:@"lastOpened" ascending:NO];
NSSortDescriptor *titleDescriptor =
[[NSSortDescriptor alloc] initWithKey:@"title" ascending:YES];
そして、私はNSFetchedResultsController
を作成するとき、私はsectionNameKeyPath:@"lastOpened"
経由でセクションを並べ替えます。
現在、私のセクションには2009-07-02 20:51:27 -0400のような標準フォーマットが表示され、2つのファイルを同時に開くことはできないため、すべてが一意です。私は一日のような日付/時間の範囲をカバーし、人間が読める形式にする必要があります。何かのような7月2日木。
ありがとうございました!
編集:
これは、すべてのUITableViewController
内部です。ここにいくつかのコードがあります。
- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section {
// Display the dates as section headings.
return [[[fetchedResultsController sections] objectAtIndex:section] name];
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
id <NSFetchedResultsSectionInfo> sectionInfo = [[fetchedResultsController sections] objectAtIndex:section];
return [sectionInfo numberOfObjects];
}
テーブルを作成するためにバインディングを使用していますか、またはUITableViewのデータソースを作成しましたか? –
質問者がiPhone用に開発しているので、Cocoa Touchには存在しないので、Bindingsにすることはできません。 –
フェッチされた結果コントローラ、btwに 'NSPredicates'を設定して結果をフィルタリングする必要があります。複数の方法を並べ替えることはできますが、特定の「プロパティが真」である(つまり述語が満たされている)特定のオブジェクトのみを表示する場合は、NSPredicatesを使用します。 – jbrennan