0

我有一个 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 列表,但它不是按字母顺序排列的。

4

3 回答 3

2

您正在使用一个对象初始化您的 mutarr,该对象是您的字典中 allValues 返回的数组。而是试试这个:

NSMutableArray* mutarr = [NSMutableArray array];

for (NSArray* array in self.firstTableView.allValues) {
    [mutarr addObjectsFromArray:array];
}
于 2013-08-16T23:59:50.227 回答
0

您的代码将意味着这mutarr是一个包含数组数组的数组,而不是字符串数组。您应该循环遍历字典中的数组值,并将每个项中的项添加到您mutarr的数组中,以使其成为可以排序的字符串数组。

于 2013-08-16T23:58:41.130 回答
0

如果您的 NSDictionary 值是数组,那么您正在尝试对数组而不是字符串进行排序。尝试创建一个 for 循环来迭代 [self.firstTableView allValues] 然后将该数组中的所有值添加到您的 main 以对数组进行排序。

于 2013-08-16T23:59:33.460 回答