【发布时间】:2012-03-12 01:51:31
【问题描述】:
我做了一些方法,从堆栈中获取数字和操作数,并以更用户友好的方式显示。问题在于 descriptionString 变量,当 topOfStack 为“+”时,它部分返回 null。我在下面显示一个日志。
+(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] 堆栈 = ( 2、 6、 “+” )
- 2012-02-21 22:09:39.983 计算器[12536:f803] 描述为(空)
为什么 descriptionString 为空?我在哪里做错了?谢谢
【问题讨论】:
-
这是经典的计算机科学家庭作业......
标签: objective-c xcode string recursion stack