我有一个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];
EFFECT:这给了我NSLog中的一个列表,但它不是按字母顺序排列的。
答案 0 :(得分:2)
您正在使用一个对象初始化您的mutarr,该对象是您的字典上allValues返回的数组。相反,试试这个:
NSMutableArray* mutarr = [NSMutableArray array];
for (NSArray* array in self.firstTableView.allValues) {
[mutarr addObjectsFromArray:array];
}
答案 1 :(得分:0)
您的代码意味着mutarr
是一个包含数组数组的数组,而不是一个字符串数组。您应该循环遍历字典中的数组值,并将每个项目中的项目添加到mutarr
,以使其成为可以排序的字符串数组。
答案 2 :(得分:0)
如果您的NSDictionary值是数组,那么您正在尝试对数组进行排序而不是字符串。尝试创建一个for循环来迭代[self.firstTableView allValues],然后将该数组中的所有值添加到main中以排序数组。