Этот метод будет работать только с изменяемым словарем. Он не проверяет, что должно быть сделано, если новый ключ уже существует.
Вы можете получить изменяемый словарь неизменяемого, вызвав для него mutableCopy.
- (void)exchangeKey:(NSString *)aKey withKey:(NSString *)aNewKey inMutableDictionary:(NSMutableDictionary *)aDict
{
if (![aKey isEqualToString:aNewKey]) {
id objectToPreserve = [aDict objectForKey:aKey];
[aDict setObject:objectToPreserve forKey:aNewKey];
[aDict removeObjectForKey:aKey];
}
}