嗨,我正在尝试从一个名为 programStack 的 NSMutableArray 中获取一个整数值,该数组包含所有数字。此方法是一种撤消方法,因此当我点击撤消时,它会擦除堆栈上的最后一项并返回上一个选项。当我尝试获取数字时,方法 undoVariable 在返回时具有正确的字符串值,但是在显示之后我得到错误的值。一个例子是在数组上有 2, 3。我擦除 3 并且字符串在 UndoVariable 中显示 2,然后当我使用 self.display.text 显示它时显示 1.57539e-302。这可能是指针地址吗?这是代码。
- (IBAction)undoPressed {
NSString* string = self.display.text;
if(userIsInTheMiddleOfEnteringANumber){
if([self.display.text length])
string = [string substringToIndex:([string length]-1)];
} else {
string = [NSString stringWithFormat:@"%g",[self.brain undoVariable]];
NSLog(@"string is %@", string);
}
self.display.text = string;
}
-(NSString*) undoVariable{
if(self.programStack)
[self.programStack removeLastObject];
if(self.programStack){
NSString* string = @"";
string = [string stringByAppendingString: [self.programStack lastObject]];
NSLog(@"string = %@", string);
NSLog(@"self.display.text = %@", [self.programStack lastObject]);
return string;
}