Выполнение класса Stanford 193 ITunes U. Я пытаюсь скопировать NSArray со строками и числами. Я хочу заменить определенные строки объектами NSDictionary. Я понимаю, что этот метод будет быстрее, чем «replaceObjectAtIndex»Я пытаюсь скопировать массив, но новый (изменяемый) массив не заселен
У меня есть проблема в том, что ничего не получается скопировать в стек. Значения присутствуют в «программе». Скопировано в элемент. Но все значения в стеке равны нулю. Этот вопрос связан не с извлечением элементов словаря. NOTHING копируется в массив NSMutable, независимо от того, есть ли переменные, которые нужно заменить. Я вставил точку останова и контролировал все переменные (program: index, item, stack: index), когда он проходит через цикл.
Что особенно смущает то, что в какой-то момент эта функция работала, а теперь это не так.
+(double)runProgram:(id) program
usingVariableValues:(NSDictionary *)variableValues;
{
NSMutableArray *stack;
for (id item in program)
{
if ([item isKindOfClass:[NSNumber class]]) [stack addObject:item];
//above line because comparing numbers to strings throws exception
else if (([item isEqualToString:@"x"]) ||
([item isEqualToString:@"a"]) ||
([item isEqualToString:@"b"]))
{
//if a variable is used, copy the value to program instead of the key
id replacement =[variableValues objectForKey:item];
if (!replacement) replacement = [NSNumber numberWithDouble:0.0];
[stack addObject:replacement];
}
else [stack addObject:item]; //if not a variable, just copy the item
}
//stack should now be a mutable copy of program, but with variables replaced
return [self popOperandOffStack:stack];
} //runProgram
И я чувствую себя таким умным сейчас, но большое вам спасибо. Это исправить. – user1330705
@ user1330705 Если ответ tronbabylove помог вам, пожалуйста, примите его. Знаешь, галочка ... – trudyscousin