Есть ли причина для NSDictionary возвращать свои ключи как NSArray вместо NSSet ? В документации уже указано, что порядок ключей в массиве не определен, было бы логично использовать набор.
NSDictionary
NSArray
NSSet