Сортировать 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 ответ
Решение
Я справился с этим, изменив свой основной массив в массив, которым лучше манипулировать.