我有一個存儲學生ID作爲鍵的字典,以及它們的顯示名稱作爲名爲「display」的子字典的鍵。該詞典是這個樣子:按值(非關鍵字)按字母順序排序NSMutableDictionary
id-1:
display: mark
id-2:
display: alexis
id-3:
display: beth
我想列表進行排序成兩個陣列,一個密鑰和一個值,這將是這個樣子
key value
id-2 alexis
id-3 beth
id-1 mark
我目前有這樣的代碼:
-(void)alphabetize {
PlistManager *pm = [[PlistManager alloc] init];
NSMutableDictionary *students = [pm getStudentsDict:ClassID];;
NSMutableArray *keyArray = [[NSMutableArray alloc] init];
NSMutableArray *valArray = [[NSMutableArray alloc] init];
for (id key in students) {
[keyArray addObject:key];
[valArray addObject:[[students objectForKey:key] objectForKey:@"display"]];
}
NSSortDescriptor *alphaDescriptor = [[NSSortDescriptor alloc] initWithKey:@"DCFProgramName" ascending:YES selector:@selector(localizedCaseInsensitiveCompare:)];
NSArray *sortedValues = [valArray sortedArrayUsingDescriptors:[NSMutableArray arrayWithObjects:alphaDescriptor, nil]];
NSLog(@"%@", sortedValues);
}
但它創建sortedValues數組時引發錯誤。
如果有人能幫助我或指出我朝着正確的方向,那將不勝感激。謝謝!
我不認爲你可以使用'NSSortDescriptor'和'NSString'數組。考慮使用'NSArray'的'sortedArrayUsingSelector'方法。 – user3386109
我如何對兩個數組排序,以便鍵和對象一旦排序就匹配起來? – user3529561
**有什麼錯誤使它「投擲」??? ** –