你好,我对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” ];)我已经在那里了。 –