我正在开发一个语言学习应用程序。所以我有一个NSMutableDictionary
带有“单词”的键。这些键的对象NSDictionaries
与键“频率”和“计数”嵌套。NSNumbers 是“频率”和“计数”的对象。
下面是初始化代码:
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 中。
我想过有一个带有以下键的平面字典:'word','frequency','count'......但我必须枚举以检查是否包含单词。
如果有任何关于更好的数据结构策略的建议,我很想听听。我将非常频繁地检查是否包含“单词”,而不太频繁地会根据“频率”或“计数”进行排序。
我见过很多与此类似的问题,但它们都是针对平面词典的。