Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/23.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
Objective c 应用程序因未捕获的异常而终止”;“与班级一起发布”;_Objective C_Xcode - Fatal编程技术网

Objective c 应用程序因未捕获的异常而终止”;“与班级一起发布”;

Objective c 应用程序因未捕获的异常而终止”;“与班级一起发布”;,objective-c,xcode,Objective C,Xcode,我正在学习对象C,我无法理解为什么会出现以下错误: 2013-01-08 21:46:12.984 ObjectiveCDemo[38355:c07] -[Calculator subtractFromTotal:]: unrecognized selector sent to instance 0x7568c90 2013-01-08 21:46:12.985 ObjectiveCDemo[38355:c07] *** Terminating app due to uncaught excep

我正在学习对象C,我无法理解为什么会出现以下错误:

2013-01-08 21:46:12.984 ObjectiveCDemo[38355:c07] -[Calculator subtractFromTotal:]: unrecognized selector sent to instance 0x7568c90
2013-01-08 21:46:12.985 ObjectiveCDemo[38355:c07] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[Calculator subtractFromTotal:]: unrecognized selector sent to instance 0x7568c90'
我正在创建一个简单的应用程序,它具有计算器功能。我使用的代码是:

    calculator = [[Calculator alloc] init];
    double sum = [calculator addToTotal:10];
    double difference = [calculator subtractFromTotal:6];
    double results = [calculator multiplyTimesTotal:3];
    double quotient = [calculator divideFromTotal:4];
    [calculator clear];

    NSLog(@"Sum: %f", sum);
    NSLog(@"Difference: %f", difference);
    NSLog(@"Results: %f", results);
    NSLog(@"Quotient: %f", quotient);
错误发生在双差线上。我可以注释掉那一行和引用它的NSlog行,程序运行正常。计算器类的示例如下:

- (double) addToTotal:(double)value{total += value;
return total;}

- (double) subtractfromTotal:(double)value{total -= value;
return total;}

- (double) multiplyTimesTotal:(double)value{total *= value;
return total;}

- (double) divideFromTotal:(double)value{total /= value;
return total;}

虽然前面已经提到过这个错误,但我看不出其他任何解决方案是如何应用的

您的方法名称与您调用它的方式不匹配

呼叫代码:

double difference = [calculator subtractFromTotal:6];
实施:

- (double) subtractfromTotal:(double)value
应该是:

- (double) subtractFromTotal:(double)value

毫无疑问,编译器警告过你这一点。您应该注意编译器警告!他们通常会告诉你一些重要的事情

仔细查看错误日志,您可以看到这一行

Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[Calculator subtractFromTotal:]: unrecognized selector sent to instance 0x7568c90'
它清楚地告诉您,您正在尝试使用
subtractfromtoal:(double)值发送消息,而您使用
subtractfromtoal:(double)值实现它。请注意错误日志