1

オブジェクト配列、属性dateOfentry、name、ageを持つエンティティ従業員のアイデアをソートしました。

NSSortDescriptor *ageDescriptor =
    [[NSSortDescriptor alloc] initWithKey:@"date" ascending:YES];
NSArray *sortDescriptors = @[ageDescriptor];
NSArray *sortedArray = [empArrayList sortedArrayUsingDescriptors:sortDescriptors];

現在、従業員は時差で何度も入室できるため、従業員の訪問の日付ベースのレコードを取得して表示するのが好きです。

異なるレコードを持つ同じ日のレコードをさらに収集して、セクションをその日の日付、行をタイミングとして表形式で表示できるようにするにはどうすればよいですか。

4

2 に答える 2

0

日付によるソートは正しく機能すると思います。

関数で特定の日付のすべてのオブジェクトを収集する場合は、次のようになります (オブジェクトの従業員が 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 のデータソースとして使用し、配列をデータソースとして割り当てた後にテーブルビューをリロードします。

もちろん、テストデータがないため、これはテストされていません。しかし、それはこのように動作するはずです。

これがうまくいく場合は、この投稿にも賛成票を投じてください。時間のない日付を使用する方法が示されているためです。:)

于 2013-03-07T10:05:02.387 に答える
0

追加するだけです:

-(void)viewWillAppear:(BOOL)animated {
   [tableView reloadData];
}

多分それはうまくいきます。

于 2013-03-07T09:48:52.220 に答える