簡體   English   中英

如何使用NSArray按字母順序對NSDictionary中的值進行排序?

[英]How can I alphabetically sort the values in my NSDictionary with an NSArray?

我有一個NSDictionary,其中包含幾個包含多個字符串的數組。 我想把每個數組下的所有字符串放在一個單獨的數組中。 我怎樣才能一次收到所有字符串? 我試過這個:

NSMutableArray *mutarr = [[NSMutableArray alloc] initWithObjects:[self.firstTableView allValues], nil];
NSArray *mySorted = [[NSArray alloc]init];
mySorted = [mutarr sortedArrayUsingSelector:@selector(caseInsensitiveCompare:)];

NSLog(@"First table view values: %@", mySorted);

注意:self.firsttableview是一個像這樣的NSDictionary:

NSString *path = [[NSBundle mainBundle] pathForResource:@"firstTableView" ofType:@"plist"];

self.firstTableView = [NSDictionary dictionaryWithContentsOfFile:path];

效果:這給了我NSLog中的列表,但它不是按字母順序排列的。

您正在使用一個對象初始化您的mutarr,該對象是您的字典上allValues返回的數組。 而是試試這個:

NSMutableArray* mutarr = [NSMutableArray array];

for (NSArray* array in self.firstTableView.allValues) {
    [mutarr addObjectsFromArray:array];
}

你的代碼意味着mutarr是一個包含數組數組的數組,而不是一個字符串數組。 您應該循環遍歷字典中的數組值,並將每個項目中的項目添加到mutarr以使其成為可以排序的字符串數組。

如果您的NSDictionary值是數組,那么您正在嘗試對數組進行排序而不是字符串。 嘗試創建一個for循環來迭代[self.firstTableView allValues],然后將該數組中的所有值添加到main以排序數組。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM