我正在尝试创建一个谓词来对具有日期属性的对象数组进行排序。但是,当我尝试NSLog谓词时,会引发异常并且我得到一个奇怪的错误。
以下是代码:
NSDateFormatter * dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"yyyy"];
NSDate * minDate = [dateFormatter dateFromString:@"2011"];
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"date >= %@ ", minDate];
NSLog(predicate);
这是错误:
2012-02-04 12:45:58.400 MyApp[42746:17303] -[NSComparisonPredicate length]: unrecognized selector sent to instance 0x9359000
那么,为什么会发生这种情况,我该如何解决?
答案 0 :(得分:2)
尝试:NSLog(@"%@", predicate)
NSLog需要NSString,它可以作为格式字符串使用。格式字符串中的格式说明符数量将指定需要遵循的参数数量。
来自doc:
<强>的NSLog 强>
将错误消息记录到Apple系统日志工具。void NSLog ( NSString *format, ... );
<强>讨论强>
只需调用NSLogv,传递可变数量的NSLogv 参数。