-1

オブジェクト 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;}

このエラーは以前にも言及されていますが、他の解決策がどのように適用されるかわかりません

4

2 に答える 2

1

メソッド名が、呼び出した方法と一致しません。

呼び出しコード:

double difference = [calculator subtractFromTotal:6];

実装:

- (double) subtractfromTotal:(double)value

次のようにする必要があります。

- (double) subtractFromTotal:(double)value

コンパイラは間違いなくこれについて警告しました。コンパイラの警告に注意を払う必要があります! 彼らは通常、あなたに何か重要なことを言っています!

于 2013-01-09T05:02:54.880 に答える
0

エラー ログを注意深く確認すると、次の行が表示されます。

Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[Calculator subtractFromTotal:]: unrecognized selector sent to instance 0x7568c90'

subtractFromTotal:(double)valueで実装している間にでメッセージを送信しようとしていることを明確に示していますsubtractfromTotal:(double)value。エラーログに注意してください。

于 2013-01-09T05:12:32.193 に答える