ниже - метод класса, который всегда возвращает null -when, например, stack = 2,2, «+» Я хочу, чтобы он возвращал «2 + 2»CS193P - Назначение 2, описаниеOfTopOfStack :, метод рекурсивного класса
в начальной итерации метод корректно определяет topOfStack является NSString, а не NSNumber, но не создает NSString «описание» на равную «2 + 2» по рекурсивным вызовом
Я чувствую, что я что-то не хватает очевидно, я имею дело со строками правильно ....
+ (NSString *) descriptionOfTopOfStack: (NSMutableArray *) stack
{
NSString *description;
id topOfStack = [stack lastObject]; // get last object
if (topOfStack) [stack removeLastObject]; // then remove it from stack
if ([topOfStack isKindOfClass:[NSNumber class]]) { // is last object a number?
return [topOfStack stringValue]; // if so then return it, **done***
}
else if ([topOfStack isKindOfClass:[NSString class]])
{
if ([topOfStack isEqualToString:@"+"])
{
[description stringByAppendingString: [self descriptionOfTopOfStack:stack]];
[description stringByAppendingString:@"+"];
[description stringByAppendingString: [self descriptionOfTopOfStack:stack]];
}
}
NSLog(@"Description is %@", description);
return description;
}
yep, он работает, спасибо – John67
Я понимаю, что я ожидал изменить неизменяемую строку! Doh! – John67