2012-10-08 82 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"] 

修复了这个问题。