私はPerson
オブジェクトを持っています。このperson
オブジェクトには次の属性があります。
Name
StartDate
EndDate
Person
このオブジェクトをに保存していますarray
。この配列には、 個以上の100 person
オブジェクトが含まれる場合があります。
person
以下は、その配列内のオブジェクトの例です。
John, Tue Feb 22, Thr Mar 30
Jack, Wed Mar 09, Fri Apr 21
Jack, Thu Mar 19, Fri Dec 20
Jack, Tue Jan 08, Fri Apr 26 etc..
たとえば、日付を指定する必要があり、オブジェクトの範囲内と配列Wed 29 Mar
内にあるかどうかを確認する必要があります。これどうやってするの ?私の作業は次のとおりですが、機能しません(誤った結果が得られます)StartDate
EndDate
persons
NSPredicate *datePred = [NSPredicate predicateWithFormat:@"StartDate>= %@ && EndDate<= %@",givenDate,givenDate];
resultArray = [arrayContainingAllPersonObjects filteredArrayUsingPredicate:datePred ];
次の方法も試しましたが、これも間違った結果になります (SO の投稿から削除されました)。
NSPredicate *greaterThanPredicate = [NSPredicate predicateWithFormat:@"StartDate<= %@", providedDate"];
NSPredicate *lessThanPredicate = [NSPredicate predicateWithFormat:@"EndDate>= %@", ProvidedDate"];
NSPredicate *betweenPredicate = [NSCompoundPredicate andPredicateWithSubpredicates:[NSArray arrayWithObjects:greaterThanPredicate, lessThanPredicate, nil]];
何がこれを引き起こしているのか、私には手がかりがありません。ヘルプ