sal*_*hni 8 cocoa objective-c nsdictionary
根据我的阅读,词典中的键是唯一的.
考虑以下代码:
NSMutableDictionary *mydic = [NSMutableDictionary dictionary];
[mydic setObject:@"value1" forKey:@"key1"];
[mydic setObject:@"value1" forKey:@"key1"];
[mydic setObject:@"value1" forKey:@"key1"];
Run Code Online (Sandbox Code Playgroud)
为什么我可以毫无错误地运行它?我该怎么做才能避免重复密钥?
ken*_*ytm 23
是键是独一无二的.-setObject:forKey:使用现有密钥调用将覆盖旧值 - 它设置值,而不是添加值.你可以检查:
[mydict setObject:@"1" forKey:@"key1"];
[mydict setObject:@"2" forKey:@"key1"];
NSLog(@"%@", mydict);
Run Code Online (Sandbox Code Playgroud)
如果您不希望覆盖现有项目,请检查它是否存在-objectForKey::
@implementation NSMutableDictionary (AddItem)
-(void)addObjectWithoutReplacing:(id)obj forKey:(id)key {
if ([self objectForKey:key] == nil)
[self setObject:obj forKey:key];
}
@end
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9220 次 |
| 最近记录: |