안녕하세요, 저는 NSMutableArray에서 정수 값을 얻으려고합니다. 나는 모든 숫자를 보유하고있는 programStack을 호출했습니다. 이 메소드는 실행 취소 메소드이므로 실행 취소를 누르면 스택의 마지막 항목이 지워지고 이전 옵션이 리턴됩니다. 숫자를 얻으려고 할 때 undoVariable 메서드는 반환 될 때 undoVariable에 올바른 값을 갖지만 표시 될 때 잘못된 값을 반환합니다. 예를 들어 배열에 2, 3이 있습니다. 3을 지우고 문자열을 UndoVariable에 2로 표시 한 다음 self.display.text를 사용하여 1.57539e-302를 표시합니다. 포인터 주소일까요? 여기에 코드가 있습니다.Objective-C : NSMutableArray에서 정수 값 검색
- (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;
}