2012-10-08 84 views
1

我有一個核心數據數據庫充滿了來自json web服務的數據。 但是我的日期有問題。這個日期像一個字符串回來。所以我想要做的第一件事就是將此字符串轉換爲NSDate。第二件事是以正確的格式轉換此NSDate,以便我可以在日期添加排序描述符。排序日期fetchrequest

這是我目前在覈心數據庫中存儲日期的方式。

NSDateFormatter* df = [[NSDateFormatter alloc] init]; 
    [df setDateFormat:@"MM/dd/yyyy"]; 
    NSDate* d = [df dateFromString:[genkInfo objectForKey:CALENDAR_DATE]]; 

    kalender.date    = d; 

以及我如何獲取我的數據。

- (void)getKalender // attaches an NSFetchRequest to this UITableViewController 
{ 
    NSFetchRequest *request = [NSFetchRequest fetchRequestWithEntityName:@"Kalender"]; 
    request.sortDescriptors = [NSArray arrayWithObject:[NSSortDescriptor sortDescriptorWithKey:@"date" ascending:YES]]; 

    self.fetchedResultsController = [[NSFetchedResultsController alloc] initWithFetchRequest:request 
                     managedObjectContext:self.genkDatabase.managedObjectContext 
                      sectionNameKeyPath:nil 
                        cacheName:nil]; 

} 

任何想法如何做到這一點?

親切的問候和感謝提前

編輯

當我做了以下日誌。我得到的每個記錄正確的日期和空值

NSLog(@"date = %@",kalender.date); 

    2012-10-08 19:17:12.125 RacingGenk[596:c07] date = 2013-09-02 22:00:00 +0000 
    2012-10-08 19:17:12.125 RacingGenk[596:c07] date = (null) 
+0

目前還不清楚 - 你是否正在展示你已經嘗試過的東西,並發現它沒有工作?如果真是這樣,那麼是以哪種方式?初次檢查時,你的代碼看起來很好。你的'NSSortDescriptor'應該原樣使用'NSDate'對象。 – FluffulousChimp

+0

我編輯了我的代碼。它仍然沒有排序 – Steaphann

+0

「當我登錄kalender.date時,我爲每條記錄獲得正確的日期和一個空值」 - 這是什麼意思? 'kalender'只有一個'date'屬性。也許你可以在你的代碼中添加'NSLog()'命令來明確記錄什麼。 –

回答

1

正如在討論橫空出世,通過日期格式使用的格式不匹配由Web服務發送的日期格式。使用

[dateFormatter setDateFormat:@"dd/MM/yyyy"] 

修復了這個問題。