gpt4 book ai didi

ios - setObject :forKey: and setValue:forKey: in NSMutableDictionary? 有什么区别

转载 作者:IT王子 更新时间:2023-10-29 07:26:54 24 4
gpt4 key购买 nike

在查看文档时,我几乎看不出有什么大的不同。 “值”和“对象”都是 id 类型,因此可以是任何对象。 Key 曾经是一个字符串,在另一种情况下是一个 id。其中一个似乎保留了该对象,而另一个则没有。还有什么?哪一个适用于什么情况?

最佳答案

setValue:forKey:NSKeyValueCoding 的一部分协议(protocol),除其他外,它允许您从 Interface Builder 之类的工具访问对象属性。 setValue:forKey:NSDictionary 以外的类中实现。

setObject:forKey:NSMutableDictionary 存在的理由。它的签名恰好与 setValue:forKey: 非常相似,但更通用(例如任何键类型)。签名如此相似有点巧合。

更让人困惑的是,在大多数情况下,NSMutableDictionary 对 setValue:forKey: 的实现等同于 setObject:forKey:。在其他类中,setValue:forKey: 更改成员变量。在 NSMutableDictionary 中,它会更改字典条目,除非您在键前加上“@”字符——在这种情况下,它会修改成员变量。

因此,简而言之,当您需要使用字典键和值时,请使用 setObject:forKey:,而在极少数情况下,请使用 setValue:forKey:您需要处理的案例 KVP .

编辑:哦,看起来这个问题之前已经被问过和回答过:Difference between objectForKey and valueForKey?

关于ios - setObject :forKey: and setValue:forKey: in NSMutableDictionary? 有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1249634/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com