Один из вариантов - создать категорию в nsdictionary, назвать ее sortedKeys или чем-то, что возвращает отсортированные [self allKeys].
Обновление: теперь, когда я не отвечаю со своего телефона, вот мое предложение, написанный для ясности и многословный, и предполагающий, что вы используете ARC:
@interface NSDictionary (sort)
- (NSArray *)sortedKeys;
@end
@implementation NSDictionary (sort)
- (NSArray *)sortedKeys {
NSArray *keyArray = [self allKeys];
NSArray *sortedKeyArray = [keyarray sortedArrayUsingSelector:@selector(caseInsensitiveCompare:)];
return sortedKeyArray;
}
@end
Лично я не думаю, что использование подклассов NSDictionary - это путь.