Я создаю некоторый метод, который берет цифры и операнды из стека и отображает их в более удобном для пользователя стиле. Проблема с переменной descriptionString, она возвращает ноль частично, когда topOfStack равен "+". Я показываю журнал ниже.
+(NSString *)descriptionOfTopOfStack:(NSMutableArray *)stack
{
NSString *descriptionString;
id topOfStack = [stack lastObject];
NSString *secondInStack;
NSString *thirdInStack;
if (topOfStack)
[stack removeLastObject];
if ([topOfStack isKindOfClass:[NSNumber class]]) {
descriptionString = [topOfStack stringValue];
}
else if([topOfStack isKindOfClass:[NSString class]]){
if(([topOfStack isEqualToString:@"+"]) || ([topOfStack isEqualToString:@"—"])){
secondInStack = [self descriptionOfTopOfStack:stack];
thirdInStack = [self descriptionOfTopOfStack:stack];
descriptionString = [descriptionString stringByAppendingFormat:@"%@ %@ %@",thirdInStack,topOfStack,secondInStack];
NSLog(@"description is %@",descriptionString);
}
}
return descriptionString;
}
Я сделал пример с 2 + 6, это журнал:
- 2012-02-21 22: 09: 39.983 Калькулятор [12536: f803] stack = (
2,
6,
"+"
)
- 2012-02-21 22: 09: 39.983 Калькулятор [12536: f803] описание (ноль)
Почему descriptionString имеет значение null? Где я ошибся? Спасибо