在NSDictionary中更改密钥名称

iph*_*e66 5 objective-c nsdictionary

我有一个方法,它返回一个带有某些键和值的nsdictionary.我需要将字典中的键名更改为新的键名,但该键的值必须相同,但我被困在这里.需要帮助

Nic*_*ver 7

此方法仅适用于可变字典.如果新密钥已存在,它不会检查应该执行的操作.

您可以通过调用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];
    }
}
Run Code Online (Sandbox Code Playgroud)


Twe*_*e47 0

您不能使用旧值添加新的键值对,然后删除旧的键值对吗?

这仅适用于NSMutableDictionary. NSDictionarys一旦创建就不能更改。