我有兩個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