Objective c setObject:forKey和setObject:forKeyedSubscript之间有什么区别

Objective c setObject:forKey和setObject:forKeyedSubscript之间有什么区别,objective-c,nsmutablearray,Objective C,Nsmutablearray,方法setObject:forKey和setObject:forkeydsubscript之间有什么区别吗 我使用的是Objective-CNSMutableArray。在我看来,两者的作用方式相同。文档中说: 此方法与setObject:forKey相同:“ setObject:forkeydsubscript:和setObject:atIndexedSubscript:用于可变集合下标方法,与目标C文本一起引入 setObject:forkeydsubscript:用于字典样式的可变集合。不

方法
setObject:forKey
setObject:forkeydsubscript
之间有什么区别吗

我使用的是Objective-C
NSMutableArray
。在我看来,两者的作用方式相同。

文档中说:


此方法与setObject:forKey相同:“

setObject:forkeydsubscript:
setObject:atIndexedSubscript:
用于可变集合下标方法,与目标C文本一起引入


setObject:forkeydsubscript:
用于字典样式的可变集合。不应将其用于阵列样式集合


更多信息。

也许你可以解释为什么会有它?或者至少提供文档。它用于提供文字支持。如果我写
myDict[@“key”]=@“bob”
,然后Objective-C调用
setObject:forkeydsubscript
方法,如下所示:
[myDict setObject:@“bob”forkeydsubscript:@“key”]。现在有意义了吗?它声称它是相同的,但是
setObject:forkeydsubscript:
允许
nil
值(从字典中删除键和值),而
setObject:forKey:
如果传递
nil
值,则会引发
NSInvalidArgumentException