2012-08-08 84 views
1

我有一個pickerView並根據該pickerView中的選擇我想要一個按鈕(計算按鈕)來執行兩個數學運算之一。 pickerView有一個組件,兩排男性和女性。如果用戶選擇男性,然後點擊計算按鈕,我希望程序使用一個公式。如果用戶選擇女性,然後他的計算按鈕,我希望程序使用不同的公式。我厭倦了使用。如何使用picker查看if語句

-(IBaction)caclulate{ 

if ([pickerView isEqual:sexPickerView]) { 
    if ([objectAtIndex:0]) { 
     "do formula 0" 
} 
if ([objectAtIndex:1){ 
    "do formula 1" 
} 
} 

(下稱「做公式0和1」都沒有實際的代碼...我有數學公式有,但那些沒有真正的問題這個問題,所以我這樣做的簡稱)

但是,這給我兩個錯誤。 pickerView未聲明和objectAtIndex未聲明。我是編程新手,所以我試圖做的可能是基地...

任何人都知道如何做我需要什麼?

UPDATE

-(IBAction)calculate{ 

    if ([sexPickerView selectedRowInComponent:0]) { 
    "do formula 0" 
} 

//female 
if ([sexPickerView selectedRowInComponent:1]) { 
    "do formula 1" 
} 
} 

這是我放的,現在當我點擊計算按鈕,我得到的是說

錯誤[會話開始於2012-08-08 16點04分33秒-012。] 2012-08-08 16:05:26.580 CalorieAppFinal [4289:207] *因未捕獲的異常'NSRangeException'而終止應用程序,原因:'* - [NSMutableArray objectAtIndex:]:index 1 beyond bounds [ 0 .. 0]'

當我拿出if語句,並嘗試每個公式獨立應用程序運行沒有問題..

回答

1

所有你需要的是:

[pickerView selectedRowInComponent:0]; 

,將返回你選擇的行,你的情況是0或1

至於pickerView沒有被聲明,我不確定你想要使用什麼pickerView,或者它應該被聲明的位置。如果你已經有了sexPickerView參考只是忽略了檢查,並使用sexPickerView徹底

編輯

在回答你的錯誤,問題是你正試圖籤選擇什麼樣的方式。你只有1個組件,所以你只能叫

[sexPickerView selectedRowInComponent:0]; 

您更改01,它不工作。該函數返回的是您要檢查的01。所以你的計算函數應該看起來像這樣:

-(IBAction)calculate{ 

    if ([sexPickerView selectedRowInComponent:0] == 0) { 
    "do formula 0" 
} 

//female 
if ([sexPickerView selectedRowInComponent:0] == 1) { 
    "do formula 1" 
} 
} 
+0

我試過你的代碼,並遇到一些問題...更新我的問題,請你再看一遍? – user1450221 2012-08-08 21:14:17

+0

@ user1450221我編輯了我的答案,希望能幫助 – 2012-08-08 21:19:28

+0

有效,非常感謝! – user1450221 2012-08-08 22:11:57