Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/97.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 计算器:获取运行时应用程序崩溃时;输入“;按钮按下了_Ios_Xcode - Fatal编程技术网

Ios 计算器:获取运行时应用程序崩溃时;输入“;按钮按下了

Ios 计算器:获取运行时应用程序崩溃时;输入“;按钮按下了,ios,xcode,Ios,Xcode,我写了一个计算器程序,它编译得很好,但当我按下“回车”按钮时崩溃了 以下是崩溃日志: 2012-03-05 14:35:46.561 Calculator[35699:f803] -[CalculatorViewController enterPressed:]: unrecognized selector sent to instance 0x6a590f0 2012-03-05 14:35:46.657 Calculator[35699:f803] *** Terminating app d

我写了一个计算器程序,它编译得很好,但当我按下“回车”按钮时崩溃了

以下是崩溃日志:

2012-03-05 14:35:46.561 Calculator[35699:f803] -[CalculatorViewController enterPressed:]: unrecognized selector sent to instance 0x6a590f0
2012-03-05 14:35:46.657 Calculator[35699:f803] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[CalculatorViewController enterPressed:]: unrecognized selector sent to instance 0x6a590f0'
*** First throw call stack:
(0x13bb052 0x154cd0a 0x13bcced 0x1321f00 0x1321ce2 0x13bcec9 0x155c2 0x1555a 0xbab76 0xbb03f 0xba2fe 0x3aa30 0x3ac56 0x21384 0x14aa9 0x12a5fa9 0x138f1c5 0x12f4022 0x12f290a 0x12f1db4 0x12f1ccb 0x12a4879 0x12a493e 0x12a9b 0x20fd 0x2065)
terminate called throwing an exception(lldb) 
视图控制器的实现:

#import "CalculatorViewController.h"
#import "CalculatorBrain.h"

@interface CalculatorViewController ()
@property (nonatomic) BOOL userIsInTheMiddleOfEnteringANumber;
@property (nonatomic, strong) CalculatorBrain *brain;
@end

@implementation CalculatorViewController
@synthesize display = _display;
@synthesize userIsInTheMiddleOfEnteringANumber = _userIsInTheMiddleOfEnteringANumber;
@synthesize brain = _brain;

- (CalculatorBrain *)brain
{
    if(!_brain) _brain = [[CalculatorBrain alloc] init];
    return _brain;
}

- (IBAction)digitPressed:(UIButton *)sender 
{
    NSString *digit = [sender currentTitle];
    if (self.userIsInTheMiddleOfEnteringANumber) {
        self.display.text = [self.display.text stringByAppendingString:digit];
    } else {
        self.display.text = digit;
        self.userIsInTheMiddleOfEnteringANumber = YES;
    }

}

- (IBAction)enterPressed 
{
    [self.brain pushOperand:[self.display.text doubleValue]];
    self.userIsInTheMiddleOfEnteringANumber = NO;
}

- (IBAction)operationPressed:(UIButton *)sender 
{
    if(self.userIsInTheMiddleOfEnteringANumber) {
        [self enterPressed];
    }
    NSString *operation = sender.currentTitle;
    double result = [self.brain performOperation:operation];
    self.display.text = [NSString stringWithFormat:@"%g",result];
}

@end

答案在错误消息
-[CalculatorViewController enterPressed:
中,该消息表示发送到视图控制器的选择器应接受一个参数。但是,您已经定义了
enterPressed
,没有任何参数。
enterPressed
方法应该更像
operationPressed:
ie:

- (IBAction) enterPressed:(UIButton *)sender 

非常感谢。当我使用对话框输入代码时,我忘了删除“sender”,然后在代码中删除了它,但设置必须保留在XML中。因此,我删除了代码和框,并用新的设置重新输入,它工作正常。非常感谢。