日付によるソートは正しく機能すると思います。
関数で特定の日付のすべてのオブジェクトを収集する場合は、次のようになります (オブジェクトの従業員が NSDictionary または NSMutableDictionary であると仮定します)。
-(NSArray*)getObjectsWithDate: (NSDate*) date fromArray:(NSArray*) array
{
NSMutableArray *retArray = [[NSMutableArray alloc]init];
BOOL b_enteredCorrectDateArea = NO;
for (NSDictionary *dict in array) {
NSDate *dateFromDict = [dict objectForKey:@"date"];
//Updated section
unsigned int flags = NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit;
NSCalendar* calendar = [NSCalendar currentCalendar];
NSDateComponents* components = [calendar components:flags fromDate:dateFromDict];
NSDate* dateFromDictWithoutTimeComponent = [calendar dateFromComponents:components];
components = [calendar components:flags fromDate:date];
NSDate *dateFromArgumentsWithoutTimeComponent = [calendar dateFromComponents:components];
//end of update
if ([dateFromArgumentsWithoutTimeComponent isEqualToDate:dateFromDictWithoutTimeComponent]) {
[retArray addObject:dict];
if (!b_enteredCorrectDateArea) {
b_enteredCorrectDateArea = YES;
}
}
else if(b_enteredCorrectDateArea) //performance Optimization
{
break;
}
}
return retArray;
}
フィルタリングされたデータを表示したい場合は、返された配列を UITableView のデータソースとして使用し、配列をデータソースとして割り当てた後にテーブルビューをリロードします。
もちろん、テストデータがないため、これはテストされていません。しかし、それはこのように動作するはずです。
これがうまくいく場合は、この投稿にも賛成票を投じてください。時間のない日付を使用する方法が示されているためです。:)