【发布时间】:2013-05-01 18:58:59
【问题描述】:
我正在使用 Xcode iOS SDK 6.1 制作计算器。但是,我遇到了一个问题,因为我的计算器无法将这两个数字相加。计算器似乎总是给我第一个数字作为答案。有没有办法解决这个问题?
代码如下:
#import "ViewController.h"
@interface ViewController ()
@end
@implementation ViewController
@synthesize FirstNumber,SecondNumber;
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
self.FirstNumber.delegate = self;
self.SecondNumber.delegate = self;
}
- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
- (void)dealloc
{
[FirstNumber release];
[SecondNumber release];
[super dealloc];
}
- (IBAction)Calculate:(id)sender
{
NSString *finalNumberString;
int firstNumberInt, secondNumberInt, finalNumberInt;
firstNumberInt = [FirstNumber.text integerValue];
secondNumberInt = [SecondNumber.text integerValue];
finalNumberInt = firstNumberInt + secondNumberInt;
UIAlertView *alerting = [[UIAlertView alloc]initWithTitle:@"Answer" message:[NSString stringWithFormat:@"The answer is %d",finalNumberInt] delegate:nil cancelButtonTitle:@"Cancel" otherButtonTitles: nil];
[alerting show];
_FinalNumber.text = [[NSString alloc] initWithFormat:@"%i",finalNumberInt];
}
- (BOOL)textFieldShouldReturn:(UITextField*)textField
{
[FirstNumber resignFirstResponder];
[SecondNumber resignFirstResponder];
return NO;
}
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event
{
UITouch *touch = [touches anyObject];
if ([touch view] == self.view)
{
[FirstNumber resignFirstResponder];
[SecondNumber resignFirstResponder];
}
}
@end
【问题讨论】:
-
您是否添加了任何日志记录来跟踪进程或调试?
-
我同意@DrummerB 的回答,但作为旁注,您应该遵循使用小写首字母命名属性和实例变量的约定。因此,您不应使用 FirstNumber 或 _FirstNumber,而应使用 firstNumber 和 _firstNumber。类名应使用大写字符串。
标签: ios objective-c calculator