2010-05-14 105 views
0

我一直在iphone项目上工作,并遇到了问题。目前在它显示所有对象的表格视图中,我使用基于对象datePerformed字段的标题。唯一的问题是我的代码显然创建了一个包含日期和时间的标题,导致对象没有按照我的意图进行单独的日期分组,而是基于他们的日期和时间。我不确定它是否重要,但是当创建对象时,我使用日期选择器来选择日期,但不是时间。我想知道是否有人可以给我任何建议或意见。使用对象日期(没有时间)表格标题而不是对象日期和时间?

这里是我设置的fetchedResultsController

- (NSFetchedResultsController *)fetchedResultsController { 

if (fetchedResultsController != nil) { 
    return fetchedResultsController; 
} 

// Create and configure a fetch request with the Exercise entity. 
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init]; 
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Exercise" inManagedObjectContext:managedObjectContext]; 
[fetchRequest setEntity:entity]; 

// Create the sort descriptors array using date and name 
NSSortDescriptor *dateDescriptor = [[NSSortDescriptor alloc] initWithKey:@"datePerformed" ascending:NO]; 
NSSortDescriptor *nameDescriptor = [[NSSortDescriptor alloc] initWithKey:@"name" ascending:YES]; 
NSArray *sortDescriptors = [[NSArray alloc] initWithObjects:dateDescriptor, nameDescriptor, nil]; 
[fetchRequest setSortDescriptors:sortDescriptors]; 

// Create and initialize the fetch results controller 
NSFetchedResultsController *aFetchedResultsController = [[NSFetchedResultsController alloc] initWithFetchRequest:fetchRequest managedObjectContext:managedObjectContext sectionNameKeyPath:@"datePerformed" cacheName:@"Root"]; 
self.fetchedResultsController = aFetchedResultsController; 
fetchedResultsController.delegate = self; 

// Memory management calls 
[aFetchedResultsController release]; 
[fetchRequest release]; 
[dateDescriptor release]; 
[nameDescriptor release]; 
[sortDescriptors release]; 

return fetchedResultsController; 
} 

代码此处,我设置了表头属性:

- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section { 
// Display the exercise' date as section headings. 
return [[[fetchedResultsController sections] objectAtIndex:section] name]; 
} 

任何建议表示欢迎。

+0

说明:你是什么意思,应该只是日期,但他们都是数据和时间?毕竟,所有日期都是时间。你的意思是你只是显示日期而不是标题中的时间? – TechZen 2010-05-14 21:41:21

+0

http://imgur.com/RxB7N这是目前的样子。我希望它的日期和日期和时间标题。所以Auto Chea和BB Press应在2010年5月14日之前组合在一起。这可能吗? – user341566 2010-05-14 22:00:48

回答

0

当您将NSDate转换为表格的字符串时,只需转换日期而不是时间。我的一个应用程序做这个确切的事情为表头,我配置日期格式这样(没有时间样式):

self.dateFormatter = [[NSDateFormatter alloc] init]; 
[dateFormatter setDateStyle:NSDateFormatterMediumStyle]; 

NSString* str = [dateFormatter stringFromDate:[NSDate date]];    

您可能需要,如果你使用的是已经有一个格式化加这行时间风格设置:

[dateFormatter setTimeStyle:NSDateFormatterNoStyle]; 
+0

我想这就是我需要做的,但我是新来获取请求,所以我不知道如何做或当我做datePerformed sectonNameKeyPath之前做到这一点。有什么建议么? – user341566 2010-05-16 18:24:21

+0

看起来你在取得的结果中只有一个字符串,我以为你是从NSDate开始工作的。 – progrmr 2010-05-16 19:19:54

+0

你将不得不原谅我的noobness,但有没有简单的方法,我可以更改我的代码以适应日期而不是字符串,所以我可以解决我的问题? – user341566 2010-05-16 23:05:29

相关问题