2010-05-14 103 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

相關問題