2012-02-04 67 views
0

我想使用谓词来排序具有NSDate类型的日期属性的对象的数组。但是,当我尝试使用谓词时,会引发异常,并且出现一个奇怪的错误。在NSArray上使用NSPredicate时崩溃

下面的代码:

NSDate * minDate = [NSDate date]; 
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"date >= %@ ", minDate]; 
NSLog(@"%@",predicate); 
NSArray * obs = [self.observations filteredArrayUsingPredicate:predicate]; 

这里的错误:

2012-02-04 13:14:32.380 MyApp[42845:17303] date >= CAST(315558000.000000, "NSDate") 
2012-02-04 13:14:32.381 MyApp[42845:17303] -[__NSDate length]: unrecognized selector sent to instance 0x9392f80 
2012-02-04 13:14:32.381 MyApp[42845:17303] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSDate length]: unrecognized selector sent to instance 0x9392f80' 

任何想法什么我做错了吗?谢谢。

+0

如果将其设置为日期和月份组件的日期,会发生什么情况? – vikingosegundo 2012-02-04 20:50:04

+0

我将日期更改为当前日期并得到相同的结果。 – 2012-02-04 21:15:42

+0

你使用NSZombieEnabled工具吗? – vikingosegundo 2012-02-04 21:22:01

回答

0

原来退回的项目不再是预期的类型。修复阵列后,代码按预期工作。