// assumes that olkdey and newkey won't be the same; they can't as
// constants... but...
[dict setObject: [dict objectForKey: @"oldkey"] forKey: @"newkey"];
[dict removeObjectForKey: @"oldkey"];
<Ч />
Подумайте, что означает «непосредственное редактирование существующего ключа». Словарь - это хеш; он хэширует содержимое ключей, чтобы найти значение.
Что произойдет, если вы измените содержимое ключа? Ключ должен быть перефразирован (и внутренняя структура словаря перебалансирована), иначе значение больше не будет доступным.
Почему вы хотите редактировать содержимое ключа? То есть Какую проблему это решить, что выше не делает?