2012-07-05 93 views
1

我从YYYY-MM-DD NSString格式的服务器中获得一堆日期,我们立即将其粘贴到核心数据中进行访问。但是,我需要使用大于date的谓词来执行排序的提取请求。如果日期是字符串而不是日期对象,我怎么能说“日期大于X”?按日期排序核心数据类型为NSString

AKA,下面就为的NSString,而不是NSDate的

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"(start <= %@) AND (name == %@)", currentTime, name]; 

回答

0

代替存储日期为字符串,然后有对字符串进行排序,与NSDateFormatter解析的日期,然后将它们存储在核心NSDates数据,那么你可以相对容易地用它们做各种谓词。

+0

在我们的数据对象中有超过500k的日期,我宁愿不把它们全部从核心数据中取出,用NSDateFormatter键入并恢复它们。这是最后的手段。 – Eric 2012-07-05 18:53:11

+0

@Eric我同意Jesse Crocker。您应该将日期作为NSDate存储在coredata数据库中。如果您的日期超过500K,请快速创建一个脚本来转换日期(Mac Foundation应用程序),方法是首先加载旧数据库,使用NSDateFormatter将字符串转换为日期,然后将其存储到新的数据库中数据库。 – CoreCode 2012-07-06 01:16:09

+0

我们尝试了24小时,找不到更好的选择,感谢您的帮助! – Eric 2012-07-06 19:29:18