崩潰

2012-02-22 131 views
0

嘿,我試圖讓一個明確的按鈕,潤色我的計算器..代碼執行清除按鈕崩潰

無法識別的選擇發送到實例0x6a6e1e0'

時候給我這個錯誤

有在鏈接到clearBtn

的界面生成器本代碼是在CalculatorViewController.m 顯示被鏈接到的UILabel 和一個按鈕.. 繼承人的代碼

- (IBAction)clearBtn 
{ 
if (self.userIsInTheMiddleOfEnteringANumber) { 
[[self display] setText:@"0"]; 
[self setUserIsInTheMiddleOfEnteringANumber:NO]; 
}  

} 

- (IBAction)clearAllBtn //this button works fine.. 
{ 
[[self brain] clearAll]; // the brain class has a method to set the array to nill 
[[self display] setText:@"0"]; 
[self setUserIsInTheMiddleOfEnteringANumber:NO]; 
} 

回答

0

感謝您發佈代碼。一般來說,無法識別的選擇器錯誤並不難,但我們需要知道哪一行代碼正在觸發它,這將幫助我們瞭解哪個對象正在接收消息,以及選擇器是什麼。你能發佈錯誤消息的轉儲嗎?

閱讀關於Objective-C選擇器here

一般來說,界面生成器是一個偉大的工具... umm,建立接口。但是,在更改代碼或佈局後,必須小心連接並確保所有內容都仍然連接起來。

+0

評論終於想通了!由於clearBtn不調用另一個類,它需要有方法名的(ID)發送,在這種情況下,我改變了方法名 - (IBAction爲)clearBtn:(UIButton的*)發件人 爲什麼這個工作現在???? – metaDNA 2012-02-22 20:52:27

+0

因爲'clearBtn'和'clearBtn:'(帶冒號)是兩個不同的選擇器...請參閱我的帖子。 – QED 2012-02-22 20:57:14

+0

ahhh(燈泡)謝謝@psoft – metaDNA 2012-02-22 21:20:02

1

一種很難知道沒有看到你的代碼的其餘部分,但我假設這是因爲你沒有一個名爲setUserIsInTheMiddleOfEnteringANumber的方法。也許仔細檢查拼寫和參數列表?

+0

他說的第二種方法工作得很好,它有相同的拼寫相同的呼叫......我同意它需要更多的信息,但(這也從赫加蒂的在線斯坦福類作業) – heisenberg 2012-02-22 20:48:26

+0

:) @kekekela見下文 – metaDNA 2012-02-22 20:54:36