私は、テキストフィールドとその作成されたdateandtimeからの文字列入力を保存しています。私は文字列データ型であるmessageDate
というキーを持つcoredataに日付値を格納しています。私は文字列に私の日付値を変換しcoredata.Iに格納することは私が格納されているテキストとその作成した日付を見ることができていますNSFetchedResultsControllerはcoredataから日付を取得し、UITableviewのtitleForHeaderInSectionに日付を表示します。
timeAndDateMsgArr (
"2016-11-02 17:59 PM",
"2016-11-02 18:08 PM",
"2016-11-02 18:08 PM"
)
textArr (
"Hai",
"The",
"I'm"
)
以下のように格納されている日付とテキスト値の配列を見ることができていますしていますUITableView
CustomCellに2つのラベルを追加します。しかし、私は日付でテキストをグループ化する必要があります。私はすでにいくつかのアイデアを得るために写真を投稿する多くのソリューションを試してみましたが、以下のうちの1
- (NSFetchedResultsController *)fetchedResultsController {
if (_fetchedResultsController != nil) {
return _fetchedResultsController;
}
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription
entityForName:@"msgHistory" inManagedObjectContext:self.managedObjectContext];
[fetchRequest setEntity:entity];
NSSortDescriptor *sort = [[NSSortDescriptor alloc]
initWithKey:@"messageDate" ascending:NO];
[fetchRequest setSortDescriptors:[NSArray arrayWithObject:sort]];
[fetchRequest setFetchBatchSize:20];
NSFetchedResultsController *theFetchedResultsController =
[[NSFetchedResultsController alloc] initWithFetchRequest:fetchRequest
managedObjectContext:self.managedObjectContext sectionNameKeyPath:nil
cacheName:@"Root"];
self.fetchedResultsController = theFetchedResultsController;
_fetchedResultsController.delegate = self;
NSLog(@"fetchcontroller %@",_fetchedResultsController);
return _fetchedResultsController;
}
- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section {
NSString *rawDateStr = [[[self.fetchedResultsController sections] objectAtIndex:section] name];
NSLog(@"raw %@",rawDateStr); //****** i am getting null value here************//
// Convert rawDateStr string to NSDate...
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"yyyy-MM-dd HH:mm:ss ZZ"];
NSDate *date = [formatter dateFromString:rawDateStr];
// Convert NSDate to format we want...
[formatter setDateFormat:@"d MMMM yyyy"];
NSString *formattedDateStr = [formatter stringFromDate:date];
return formattedDateStr;
}
でいる、現在の出力は私の予想される出力は、私が表示されます以下のようなものになります
のようなものです月の日付は
ですが、メッセージを日付順に表示する必要があります。私は日付のキーが日付のデータ型に格納されている私の要件に適合するリンゴのサンプルコードを試してみましたが、私のケースでは、私は文字列データ型の日付を格納しています。私の場合、データ型はコードに影響するため変更できません。彼らの代替ソリューションですか、私はデータ型を変更する必要がありますか?どんな助けでも本当に感謝します。
アップルのサンプルコードの参照リンク REF LINK