gpt4 book ai didi

objective-c - NSDictionary 中的键可以重复吗?

转载 作者:太空狗 更新时间:2023-10-30 03:30:35 24 4
gpt4 key购买 nike

据我所知,字典中的键是唯一的。

考虑这段代码:

NSMutableDictionary *mydic = [NSMutableDictionary dictionary];

[mydic setObject:@"value1" forKey:@"key1"];
[mydic setObject:@"value1" forKey:@"key1"];
[mydic setObject:@"value1" forKey:@"key1"];

为什么我可以毫无错误地运行它?我应该怎么做才能避免重复键?

最佳答案

是的, key 是唯一的。使用现有键调用 -setObject:forKey: 覆盖旧值 — 它设置值,而不是添加值.您可以检查:

[mydict setObject:@"1" forKey:@"key1"];
[mydict setObject:@"2" forKey:@"key1"];
NSLog(@"%@", mydict);

如果您不想覆盖现有项目,请使用 -objectForKey: 检查它是否存在:

@implementation NSMutableDictionary (AddItem)
-(void)addObjectWithoutReplacing:(id)obj forKey:(id)key {
if ([self objectForKey:key] == nil)
[self setObject:obj forKey:key];
}
@end

关于objective-c - NSDictionary 中的键可以重复吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6807953/

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