NSDate
開始日と終了日の2 つがあります。開始日から終了日までのすべての日付を検索したい。以下のコードを試しましたが、次のエラーが発生します。
-[__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]];
何が悪いのかわかりません。どんな助けでも大歓迎です。
アップデート:
私の 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 オブジェクトを作成します。これは実際には問題ではありません。私の問題は、述語を定義して2つの日付間の日付をフィルタリングする方法がわからないことです。NSDate オブジェクトと文字列を自由に使用できますが、述語を定義する方法がわかりません。文字列を使用して比較すると思うので、長さエラーが発生します。
カスタム比較メソッドが必要ですか? もしそうなら、私はそれをしていません。