行。我花了很多时间在这上面。我在互联网上四处看看,感觉非常愚蠢。我的程序是x,2,“+”的数组。所以我制作了一个程序副本,并尝试用variableValues中的值(5)替换x。
有谁能告诉我这个世界怎么做?
+ (double)runProgram:(id)program usingVaraiableValues:(NSDictionary *)variableValues {
NSMutableArray *program2 = program;
for (NSString *obj in program) {
NSNumber *number = [variableValues objectForKey:obj];
if (number) {
int index = [program indexOfObject:obj];
NSLog(@"index = %i", index);
[program2 replaceObjectAtIndex:index withObject:number];
}
}
return [self runProgram:program2];
}
答案 0 :(得分:1)
实际上program2
不是program
的副本,它是对同一内存地址的引用。请尝试改为NSMutableArray *program2 = [program mutableCopy];
。