你好,我對iOS開發相對較新(如果這個問題已經解決了,提前很抱歉),我一直在這個應用程序中的子模塊用戶必須輸入每日數字數據,然後將列表顯示在tableview中。事情是我想要以MMMM yyyy格式的NSdate變量「inputDate」進行排序(例如:名爲2013年2月的部分)。但是,即使這個值是在同一個月中相同的部分進入了它不組他們(見鏈接在年底的插圖)如何通過NSDate輸入排序tableview(格式化爲MMM yyyy)
這裏有段代碼,這似乎是相關的問題:
//The Fetch result controller
- (NSFetchedResultsController *)fetchedResultsController
{
if (_fetchedResultsController != nil) {
return _fetchedResultsController;
}
// Create and configure a fetch request with the PVMessWert entity.
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription entityForName:@"PVMessWert" inManagedObjectContext:self.managedObjectContext];
[fetchRequest setEntity:entity];
// Create the sort descriptors array.
NSSortDescriptor *datumsort = [[NSSortDescriptor alloc] initWithKey:@"inputDate" ascending:NO];
NSArray *sortDescriptors = [[NSArray alloc] initWithObjects:datumsort, nil];
[fetchRequest setSortDescriptors:sortDescriptors];
// Create and initialize the fetch results controller.
_fetchedResultsController = [[NSFetchedResultsController alloc] initWithFetchRequest:fetchRequest managedObjectContext:self.managedObjectContext sectionNameKeyPath:@"inputDate" cacheName:@"Root"];
_fetchedResultsController.delegate = self;
return _fetchedResultsController;
}
然後:titleForHeaderInSection:
- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section
{
id <NSFetchedResultsSectionInfo> sectionInfo = [[self.fetchedResultsController sections] objectAtIndex:section];
NSArray *objects = [sectionInfo objects];
NSManagedObject *managedObject = [objects objectAtIndex:0];
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateStyle:NSDateFormatterMediumStyle];
[formatter setDateFormat:@"MMMM yyyy"];
NSDate *headerDate = (NSDate *)[managedObject valueForKey:@"inputDate"];
NSString *headerTitle = [formatter stringFromDate:headerDate];
return headerTitle;
}
然後,Dateformatter功能:
- (NSDateFormatter *)dateFormatter
{
static NSDateFormatter *dateFormatter = nil;
if (dateFormatter == nil) {
dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateStyle:NSDateFormatterMediumStyle];
[dateFormatter setTimeStyle:NSDateFormatterNoStyle];
}
return dateFormatter;
}
而對於問題的說明detailledListView
的一小截屏網址:http://i.stack.imgur.com/j8Kvz.png
預先感謝您的幫助。
你在'dailyvalue'排序FRC,但你不顯示它是什麼,或者出現其他任何地方使用它... – Wain
啊對不起,我正在測試通過輸入「dailyvalue」進行排序,當通過「inputData」沒有工作,問題仍然存在(它應該通過managedObjectContext:self.managedObjectContext sectionNameKeyPath:@「inputData」cacheName:@「Root」 ];)我已經在那裏了。 –