Сортировать NSMutableDictionnary из Plist в UICollectionView

У меня есть uicollectionView, который отображает элементы из словарей (содержится в основном словаре в списке). Мне нужно отсортировать его по ключу "порядок", который находится в моих словарях. Я не могу понять, как это сделать. Я пытаюсь сравнить ключи без успеха, используя дескрипторы.

Я беру значения из nsmutablearrays, чтобы отобразить их в ячейке.

Вот мой код (один работает без сортировки):

//To retreive the data from the plist
NSMutableDictionary *items = [[NSMutableDictionary alloc] initWithContentsOfFile: finalPath];

//initialize arrays

_order = [[NSMutableArray alloc]initWithCapacity:10];
_name = [[NSMutableArray alloc]initWithCapacity:10];
_role = [[NSMutableArray alloc]initWithCapacity:10];
_image = [[NSMutableArray alloc]initWithCapacity:10];
_description = [[NSMutableArray alloc]initWithCapacity:10];
_email = [[NSMutableArray alloc]initWithCapacity:10];
_googleplus = [[NSMutableArray alloc]initWithCapacity:10];

//load every NSDictionnary on the view

NSMutableDictionary *loadedItem = [[NSMutableDictionary alloc]initWithCapacity:1];
NSMutableDictionary *theMember = [[NSMutableDictionary alloc]initWithCapacity:10];

loadedItem = [items objectForKey:@"Team"];

for (int i = 0; i < loadedItem.count; i++) {

    theMember = loadedItem.allValues[i];

    NSString *memberOrder = [theMember objectForKey:@"order"];
    [_order addObject:memberOrder];
    NSLog(@"member order = %@", _order);

    NSString *memberName = [theMember objectForKey:@"name"];
    [_name addObject:memberName];
    NSLog(@"member name = %@", _name);

    NSString *memberRole = [theMember objectForKey:@"role"];
    [_role addObject:memberRole];
    NSLog(@"member role = %@", _role);

    NSString *memberImage = [theMember objectForKey:@"image"];
    [_image addObject:memberImage];
    NSLog(@"member image = %@", _image);

    NSString *memberDesc = [theMember objectForKey:@"description"];
    [_description addObject:memberDesc];
    NSLog(@"member description = %@", _description);

    NSString *memberMail = [theMember objectForKey:@"email"];
    [_email addObject:memberMail];
    NSLog(@"member mail = %@", _email);

    NSString *memberGoogleplus = [theMember objectForKey:@"googleplus"];
    [_googleplus addObject:memberGoogleplus];
    NSLog(@"member googleplus = %@", _googleplus);
    }
    [self.collectionView reloadData];

}

1 ответ

Решение

Я справился с этим, изменив свой основной массив в массив, которым лучше манипулировать.

Другие вопросы по тегам