私は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内にあるかどうかを確認する必要があります。これどうやってするの ?私の作業は次のとおりですが、機能しません(誤った結果が得られます)StartDateEndDatepersons
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]];
何がこれを引き起こしているのか、私には手がかりがありません。ヘルプ