NSDictionary键/值概念



如果键存在并且执行以下代码,它将删除该对象并将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没有任何作用

最新更新