我有两个NSDate
s,开始日期和结束日期。我想查找开始和结束日期之间的所有日期。我想下面的代码,但我得到了以下错误:NSPredicate和NSDate
-[__NSDate length]: unrecognized selector sent to instance 0xa484b30
self.m_maEventsForMonth = [NSMutableArray array];
NSPredicate * sPredicate = [NSPredicate predicateWithFormat:@"(date >= %@) AND (date <= %@)", start, end];
[self.m_maEventsForMonth setArray:[m_maEvents filteredArrayUsingPredicate:sPredicate]];
我也试图使开始和结束串如下,但是我得到错误的结果:
NSString * sDateStart = [self dateToString:start format:@"M/d/yyyy"];
NSString * sDateEnd = [self dateToString:end format:@"M/d/yyyy"];
self.m_maEventsForMonth = [NSMutableArray array];
NSPredicate * sPredicate = [NSPredicate predicateWithFormat:@"(date BETWEEN %@)", @[sDateStart, sDateEnd]];
[self.m_maEventsForMonth setArray:[m_maEvents filteredArrayUsingPredicate:sPredicate]];
我不明白是什么是错的。任何帮助,将不胜感激。
UPDATE:
我m_maEvents是定义我的自定义EventObjects一个NSMutableArray如下:
@interface EventObject : NSObject
{
NSString * title;
NSString * date;
NSString * starttime;
NSString * endtime;
NSString * location;
NSString * url;
NSMutableArray * m_EventTypes;
NSDate * dtDate;
}
@property (nonatomic, retain) NSString * title;
@property (nonatomic, retain) NSString * date;
@property (nonatomic, retain) NSString * starttime;
@property (nonatomic, retain) NSString * endtime;
@property (nonatomic, retain) NSString * location;
@property (nonatomic, retain) NSString * url;
@property (strong, nonatomic) NSMutableArray * m_EventTypes;
@property NSDate * dtDate;
我初始化字符串,并在init()方法创建的NSDate对象,这些对象。这些都不重要,我的问题是我不知道如何定义谓词来过滤两个日期之间的日期。我有NSDate对象和字符串在我的处置,但不知道如何定义谓词。我认为它比较使用字符串,这就是为什么我得到长度错误。
我需要自定义比较方法吗?如果是这样,我还没有做过。
所以你有一个日期数组,你想要在2个日期之间的所有日期? –
如何在数据模型中定义日期(哪种类型)? –
更新了我的文章。 – LilMoke