2013-01-09 10 views
-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;} 

雖然之前已經提到這個錯誤,我看不到任何如何與其他解決方案的應用

回答

1

你的方法名稱沒有,你叫的方式匹配它。

調用代碼:

double difference = [calculator subtractFromTotal:6]; 

實現:

- (double) subtractfromTotal:(double)value 

應該是:

- (double) subtractFromTotal:(double)value 

編譯器無疑提醒你這一點。你應該注意編譯器的警告!他們通常告訴你一些重要的事情!

+0

啊,謝謝。那是一個noob錯誤 – user1960142

0

退房錯誤日誌仔細,你可以看到這行

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

它清楚地告訴你,你要發送一個消息subtractFromTotal:(double)value,而你有subtractfromTotal:(double)value付諸實施。注意錯誤日誌。

相關問題