如果密钥确实存在且执行了以下代码,则删除对象并将密钥的值设置为 nil ,否则它也会删除密钥。< / p>
[myDetails removeObjectForKey:@"Name"];
如果密钥已经存在,会发生什么?它会产生异常/错误吗?
答案 0 :(得分:2)
首先你的意思是NSMutableDictionary
,而不是NSDictionary
,它是不可变的,如果密钥确实存在,它将同时删除密钥和值。如果密钥不存在,则不会发生任何事情(不会引发异常)。
来自docs:
<强>讨论强>
如果aKey不存在则不执行任何操作。
答案 1 :(得分:1)
答案 2 :(得分:1)
它也将删除该键和Key的对象。
以下是执行NSMutableDictionary
[getDataInSideBySide removeObjectForKey:@"1"];
的输出
getDataInSideBySide=={
1 = (
"iProgress23807pm.png",
"iProgress23822pm.png",
"iProgress55154pm.png",
"iProgress65626pm.png",
"iProgress65639pm.png",
"iProgress125224pm.png"
);
2 = (
"iProgress125217pm.png"
);
并在执行[getDataInSideBySide removeObjectForKey:@"1"]
;
getDataInSideBySide=={
2 = (
"iProgress125217pm.png"
);
}
当我再次执行[getDataInSideBySide removeObjectForKey:@"1"];
时,输出相同
getDataInSideBySide=={
2 = (
"iProgress125217pm.png"
);
}
这意味着它对NSMutableDictionary
无效。