2012-02-17 71 views
0

我做的是得到一個的UIButton發件人currentTitle不是在Xcode

-(IBAction)buttonPressed:(id)sender{ 
    NSString *someString = [sender currentTitle]; 
} 

當前標題出於某種原因,Xcode的混淆senderself這樣簡單的事情,因爲完整的選項只有retunrns屬於「自我方法可識別」。不管不管我做什麼,我會得到相同的

-(IBAction)buttonPressed:(id)sender{ 
    UIButton *btn = (UIButton *)sender; 
    NSString *someString = [btn currentTitle]; 
} 

的Xcode崩潰的NSString與「無法識別的選擇發送到BTN」行。我可以從另一個項目複製工作代碼,併發生相同的情況。什麼可能是錯的?

SOLUTION

Resarted Xcode和它工作得很好OO

+1

你確定'sender'實際上是'UIButton'嗎?你能逐字粘貼整個錯誤嗎? – 2012-02-17 21:35:54

回答

0

SOLUTION

Resarted Xcode和它工作得很好o.O

1

我不認爲Xcode是混亂senderself,發生的事情是,Xcode的一無所知sender,因爲它被聲明爲id ,這意味着Xcode只知道它是一個對象。

您在Xcode中獲得的建議可能只是每個對象具有的方法。

你必須確保sender是你期望的那樣,嘗試做這和檢查,如果它實際上是一個按鈕或別的什麼:

-(IBAction)buttonPressed:(id)sender{ 
    NSLog(@"Sender: %@", sender); 
} 
-2

我認爲這個問題是錯誤的語法

這是

sender.currentTitle; 

OR

btn.currentTitle; 

currentTitle是一個屬性,並沒有稱爲currentTitle的函數,因此您會收到錯誤「發送給btn的無法識別的選擇器」。

0

可能的原因「無法識別的選擇發送到BTN」是當你調用這是不實際寫入的方法。或者你可能被稱爲

[self buttonPressed]; 

,而不是

[self buttonPressed:]; 
0

你的問題是你調用「身份證」不是按鈕,它的自我。用'UIButton'替換'id'像這樣...

-(IBAction)buttonPressed:(UIButton *)sender{ 
    NSString *someString = sender.currentTitle; 
} 
相關問題