NSMutableDictionary 检查的更快方法
Faster way for NSMutableDictionary check
我正在做一些应用程序优化,在大循环中,对 NSMutableDictionary 的检查相当费力:
if ([self.variantBufferSequence objectForKey:[variant valueForKey:@"model_no"]] == nil) {
[self.variantBufferSequence setObject:[NSMutableDictionary new] forKey:[variant valueForKey:@"model_no"]];
}
是否有更简单的方法来检查 if
语句中条目 (objectForKey
) 的存在?
在 objc 和 clang 的最新版本中,您可以使用更紧凑的符号检查字典中是否存在键。
这个小例子对我有用:
NSMutableDictionary *description = @{@"model_no":@"key1"}.mutableCopy;
NSMutableDictionary *dictionary = @{@"key1":@"value1"}.mutableCopy;
if(dictionary[description[@"model_no"]]){
NSLog(@"It exists!");
} else {
NSLog(@"It doesn't exists!");
}
尝试将 key1
替换为 description
中的 key2
。
Reference
我正在做一些应用程序优化,在大循环中,对 NSMutableDictionary 的检查相当费力:
if ([self.variantBufferSequence objectForKey:[variant valueForKey:@"model_no"]] == nil) {
[self.variantBufferSequence setObject:[NSMutableDictionary new] forKey:[variant valueForKey:@"model_no"]];
}
是否有更简单的方法来检查 if
语句中条目 (objectForKey
) 的存在?
在 objc 和 clang 的最新版本中,您可以使用更紧凑的符号检查字典中是否存在键。
这个小例子对我有用:
NSMutableDictionary *description = @{@"model_no":@"key1"}.mutableCopy;
NSMutableDictionary *dictionary = @{@"key1":@"value1"}.mutableCopy;
if(dictionary[description[@"model_no"]]){
NSLog(@"It exists!");
} else {
NSLog(@"It doesn't exists!");
}
尝试将 key1
替换为 description
中的 key2
。
Reference