如果键存在并且执行以下代码,它将删除该对象并将key的值设置为nil,否则它将同时删除该键。
[myDetails removeObjectForKey:@"Name"];
如果键不存在会发生什么?它会产生异常/错误吗?
首先,您指的是NSMutableDictionary
,而不是NSDictionary
,这是不可变的,如果键确实存在,它将删除键和值。如果键不存在,什么也不会发生(不会引发异常)。
From the docs:
如果key不存在,则不执行任何操作。
如果key不存在,则不执行任何操作。
来自Apple文档
你为什么不问之前不看一下文档?
它将删除该key和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
没有任何作用