Я работаю над приложением для изучения языка. Поэтому у меня есть NSMutableDictionary
с ключом «слово». Объектами для этих ключей являются вложенные NSDictionaries
с частотами клавиш и счетчиком. NSNumbers - это объекты для «частоты» и «подсчета».Сортировка NSDictionary по значению внутри внутреннего вложенного NSDictionary
Вот код инициализации:
NSString* path = [[NSBundle mainBundle] pathForResource:@"french_top_50000"
ofType:@"txt"];
NSString *fh = [NSString stringWithContentsOfFile:path encoding:NSUTF8StringEncoding error:NULL];
self.userWordlist = [[NSMutableDictionary alloc] init];
for (NSString *word in fh) {
NSArray *keyArray = [[NSArray alloc] initWithObjects:@"frequency", @"count", nil];
NSArray *objectArray = [[NSArray alloc] initWithObjects:frequency, count, nil];
NSDictionary *detailsDict = [[NSDictionary alloc] initWithObjects:objectArray forKeys:keyArray];
[self.userWordlist setObject:detailsDict forKey:word];
}
Я отображая часть этого списка в таблице, и я хочу, чтобы отсортировать по частоте «», один из внутренних ключей. Я не могу понять, как это сделать.
В случае, первая мысль: «Почему вы храните это в гнездовой словаре?», Я хотел слова быть ключи, потому что в других частях приложения я часто поиск, чтобы увидеть, если слово в NSMutableDictionary.
Я думал о наличии плоского словаря со следующими ключами: «слово», «частота», «кол-во» ... но я должен был бы перечислить, чтобы проверить включение слов.
Если есть предложения по лучшей стратегии структуры данных, я бы с удовольствием их услышал. Я собираюсь проверять очень часто для включения «слов», и реже будет сортироваться на основе «частоты» или «подсчета».
Я видел много вопросов, подобных этому, но все они предназначены для плоских словарей.