2013-01-07 61 views
0

我的数组包含每个数组对象的三个词典。排序多个词典的数组

{ 
    avg = { 
     avg1 = 50; 
     avg2 = 60; 
    }; 

    posts =   { 
     alcoholContent = 450; 
     name = "BBB"; 
     origin = United States; 

    }; 

    reviews = { 

     rev1 = "Test review 1"; 
     rev2 = "Test review 2"; 
    }; 
} 

{ 
    avg = { 
     avg1 = 30; 
     avg2 = 20; 
    }; 

    posts =   { 
     alcoholContent = 550; 
     name = "AAA"; 
     origin = United States; 

    }; 

    reviews = { 

     rev1 = "Test review 1"; 
     rev2 = "Test review 2"; 
    }; 
} 

我想排序数组的关键“名称”加入(后字典)。 我该怎么办?

我想正常的排序方法,使用排序的描述,但没有奏效

+0

排序描述应该工作。你能举一个你做过什么的例子吗? – Monolo

+0

感谢您的回答。这就是我所做的NSSortDescriptor * sortDescriptor; sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@“name” 递增:YES]; NSArray * sortDescriptors = [NSArray arrayWithObject:sortDescriptor]; NSArray * sortedArray; sortedArray = [arrItems sortedArrayUsingDescriptors:sortDescriptors]; – sajaz

回答

1

尝试sortUsingComparator:

[array sortUsingComparator:^NSComparisonResult(id obj1, id obj2) { 
    NSDictionary *dict1 = obj1; 
    NSDictionary *dict2 = obj2; 

    NSString *string1 = [[dict1 objectForKey:@"posts"] objectForKey:@"name"]; 
    NSString *string2 = [[dict2 objectForKey:@"posts"] objectForKey:@"name"]; 

    return [string1 compare:string2]; 
}]; 
+0

非常感谢。这是工作 – sajaz

+0

没问题。如果你认为这是一个很好的答案,请注意;) –