Ios NSDictionary顺序与allKeys顺序不匹配

Ios NSDictionary顺序与allKeys顺序不匹配,ios,objective-c,uitableview,nsdictionary,Ios,Objective C,Uitableview,Nsdictionary,我已经创建了按名称按第一个字母组织的排序数组字典(见下面的结果)。当我对同一个字典使用allKeys命令时,顺序不同。我需要相同的顺序,因为此NSDictionary在UITableview中使用,并且应该按字母顺序排列 - (NSDictionary*) dictionaryNames { NSDictionary *dictionary; NSMutableArray *objects = [[NSMutableArray alloc] init]; NSArray *letters

我已经创建了按名称按第一个字母组织的排序数组字典(见下面的结果)。当我对同一个字典使用allKeys命令时,顺序不同。我需要相同的顺序,因为此NSDictionary在UITableview中使用,并且应该按字母顺序排列

 - (NSDictionary*) dictionaryNames {

NSDictionary *dictionary;
NSMutableArray *objects = [[NSMutableArray alloc] init];

NSArray *letters = self.exhibitorFirstLetter;
NSArray *names = self.exhibitorName;

for (NSInteger i = 0; i < [self.exhibitorFirstLetter count]; i++)
{
    [objects addObject:[[NSMutableArray alloc] init]];
}

dictionary = [[NSDictionary alloc] initWithObjects: objects forKeys:letters];

for (NSString *name in names) { 
    NSString *firstLetter = [name substringToIndex:1];

    for (NSString *letter in letters) {  //z, b
        if ([firstLetter isEqualToString:letter]) {
            NSMutableArray *currentObjects = [dictionary objectForKey:letter];
            [currentObjects addObject:name];
        }
    }

}

    NSLog(@"%@", dictionary);
NSLog(@"%@", [dictionary allKeys]);
return dictionary;
}


)

NSDictionary不是有序集合。无法控制它如何排序,它可能会根据操作系统版本、设备类型和字典内容完全改变。

我只是将NSDictionary放入排序数组中:

- (NSArray*)sortAllKeys:(NSArray*)passedArray{
    NSArray* performSortOnKeys = [passedArray sortedArrayUsingSelector:@selector(localizedCaseInsensitiveCompare:)];
    return performSortOnKeys;
}

这是因为NSDictionary键没有排序。如果您想订购,请将其放入数组中。可能的重复项,谢谢您的建议,现在已解决!
J,
T,
B,
N,
Z,
C
- (NSArray*)sortAllKeys:(NSArray*)passedArray{
    NSArray* performSortOnKeys = [passedArray sortedArrayUsingSelector:@selector(localizedCaseInsensitiveCompare:)];
    return performSortOnKeys;
}