如果我有这样的NSDictionary:
NSMutableDictionary *valuesDictionary = [NSMutableDictionary dictionaryWithObjectsAndKeys:
[NSNumber numberWithDouble:-60.0],@”a”,
[NSNumber numberWithDouble:0.0],@”b”,
[NSNumber numberWithDouble:-12.0],@”c”,
[NSNumber numberWithDouble:.3],@”x”, nil];
和这样的数组:
NSArray *program = [NSArray arrayWithObjects: @"a",@"12.6",@"100",@"+",@"x",nil];
返回数组programWithVariableValues的代码是什么样的,例如,包含@“ - 60”,@“12.6”,@“100”,@“+”,@“。3”,nil?< / p>
(用数值键替换数组中找到的任何变量)
这是一个利用NSPredicate的好地方吗?还是只是快速枚举?或其他什么?
答案 0 :(得分:1)
可能有一个使用谓词和/或valueForKeyPath运算符的聪明的单行解决方案,但是直到有人想出那个,这应该可以解决问题:
NSMutableArray *programWithVariableValues = [NSMutableArray array];
for (NSString *key in program)
{
[programWithVariableValues addObject:[[valuesDictionary objectForKey:key] description] ?: key];
}
programWithVariableValues数组现在包含您的值(作为字符串)。如果您希望将数字保留为NSNumbers,请取出“[... description]”电话。