加算は正常に機能しますが、減算はマイナスになります。考えられるさまざまなロジックを試しましたが、適切なものが見つかりませんでした。最初の 2 つの入力とマイナス ボタンで適切な解決策が得られます。この解決策を 3 番目の入力で減算に使用すると、本来の方法では発生しません。数字を入力するための 0 ~ 9 ボタンがあります。以下のメソッドをトリガーする
1 つのプラス-(IBAction)adding:(id)sender;
ボタンと、これをトリガーする
1 つのマイナスボタン。
-(IBAction)subtract:(id)sender;
主な機能をトリガーするための equals ボタン
-(IBAction)equals:(id)sender;
は、subtract メソッドと main equals メソッドに追加されます。以下は、関数実装のコード、つまり.mファイルです。
int eq;
@implementation ViewController
@synthesize temp = _temp;
@synthesize inputField = _inputField;
@synthesize outputField = _outputField;
-(IBAction)adding:(id)sender
{
self.temp = self.input + self.output;
self.input = 0;
eq = 0;
}
-(IBAction)subtract:(id)sender
{
self.temp = self.input - self.output;
self.input = 0;
eq = 1;
}
-(IBAction)digits:(id)sender
{
UIButton *b = (UIButton *)sender;
self.input = self.input * 10 + b.tag;
[self showInput];
}
-(IBAction)clear:(id)sender
{
self.input = 0;
[self showInput];
self.output = 0;
[self showOutput];
}
-(IBAction)clearE:(id)sender
{
self.input = self.input * 0.1;
[self showInput];
}
-(IBAction)equals:(id)sender
{
if (eq == 0) {
self.output = self.temp + self.input;
self.temp = 3;
}
if (eq ==1)
{
self.output = self.temp - self.input;
self.temp = 3;
}
[self showOutput];
self.input = 0;
[self showInput];
}
-(void)showInput
{
self.inputField.text = [NSString stringWithFormat:@"%lld", self.input];
}
-(void)showOutput
{
self.outputField.text = [NSString stringWithFormat:@"%lld", self.output];
}
- (void)viewDidLoad
{
[super viewDidLoad];
self.inputField.text = [NSString stringWithFormat:@"%lld",self.input];
self.outputField.text= [NSString stringWithFormat:@"%lld", self.output];
}
- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
@end
.hファイルは次のとおりです。
@interface ViewController : UIViewController
@property (nonatomic,readwrite,weak) IBOutlet UILabel *inputField;
@property (assign,readwrite,) unsigned long long input;
@property(assign,readwrite) unsigned long long temp;
@property (nonatomic,readwrite,weak) IBOutlet UILabel *outputField;
@property (assign,readwrite) unsigned long long output;
-(IBAction)digits:(id)sender;
-(IBAction)adding:(id)sender;
-(IBAction)subtract:(id)sender;
-(IBAction)clear:(id)sender;
-(IBAction)clearE:(id)sender;
-(IBAction)equals:(id)sender;
@end