我做了一些方法,它從堆棧中獲取數字和操作數,並以更加用戶友好的風格顯示它。問題在於descriptionString變量,它在topOfStack爲「+」時部分返回null。我在下面顯示一個日誌。如何讓幾個字符串中的一個? Xcode
+(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爲空?我犯了什麼錯誤?謝謝
這是一個典型的計算機科學的家庭作業.... – DBD 2012-02-21 18:27:57
的確是這樣,謝謝 – 2012-02-21 18:39:05