2013-08-20 3 views
1

Мне нужно отсортировать массив с помощью ключа «Дата» в словаре товаров. И в конце мне нужен массив с некоторой структурой в качестве моего массива mData, но с сортировкой Date.сортировка NSArray из NSDictionaries, в котором есть множество словарей

mData---------->( { items = ( { Accuracy = 5; Address = "Australia, Sydney CBD, Bridge Street"; Course = "0.00"; Date = "2013-08-20 06:50:28 +0000"; Speed = 3; alt = 0; lat = "-33.8634"; lon = "151.211"; }, { Accuracy = 65; Address = "Armenia, Yerevan, \U053f\U0561\U056c\U0565\U0576\U0581\U056b \U0583\U0578\U0572\U0578\U0581"; Course = "0.00"; Date = "2013-08-20 06:41:02 +0000"; Speed = 3; alt = 1116; lat = "40.20016076"; lon = "44.49 введите код здесь 130268"; } ); name = Name; startTime = "10:40"; } ) мой массив выглядел 2. NSDictionary * mFirst = [NSDictionary dictionaryWithObjectsAndKeys:[NSDate distantFuture], @"Date", nil]; NSDictionary * mSecond = [NSDictionary dictionaryWithObjectsAndKeys:[NSDate distantPast], @"Date", nil]; NSArray *mArr = [[NSArray alloc]initWithObjects:mFirst,mSecond, nil]; NSDictionary * myDict = [NSDictionary dictionaryWithObject:mArr forKey:@"items"]; NSArray * mSortedArray = [[ NSArray alloc]initWithObjects:myDict, nil]; NSLog(@"%@", mSortedArray);

ответ

0

Используйте это:

NSSortDescriptor *dateDescriptor = [[[NSSortDescriptor alloc] initWithKey:@"Date" ascending:YES] autorelease]; 
    NSArray *sortDescriptors = [NSArray arrayWithObject:dateDescriptor]; 
    NSArray *sortedArray = [myArray sortedArrayUsingDescriptors:sortDescriptors]; 

ОБНОВЛЕНО: Я использовал это:

NSArray *myArray = [[NSArray alloc] initWithObjects:[NSDictionary dictionaryWithObjectsAndKeys:[NSDate distantFuture], @"Date", nil], 
     [NSDictionary dictionaryWithObjectsAndKeys:[NSDate distantPast], @"Date", nil], nil]; 
    NSLog(@"%@", myArray); 
    NSSortDescriptor *dateDescriptor = [[NSSortDescriptor alloc] initWithKey:@"Date" ascending:YES]; 
    NSArray *sortDescriptors = [NSArray arrayWithObject:dateDescriptor]; 
    NSArray *sortedArray = [myArray sortedArrayUsingDescriptors:sortDescriptors]; 
    NSLog(@"%@", sortedArray); 

И получил журнал:

Перед сортировкой: ( { Дата = "4001-01-01 00:00:00 +0000"; }, { Дата = "0001-12-30 00:00:00 +0000"; } ) После сортировки: ( { Дата = "0001-12-30 00:00:00 +0000"; }, { Дата = «4001-01-01 00: 00:00 +0000 "; } )

При использовании вышеуказанного кода, пожалуйста, проверьте пожалуйста.

+0

нет результата мой словарь comms без сортировки –

+0

у вас NSLog sortedArray? –

+0

Да, но я не могу опубликовать его здесь --- слишком долго 951 персонажем –

Смежные вопросы