如何使用uipickerView创建if语句

时间:2012-08-08 20:27:14

标签: ios xcode if-statement uipickerview ibaction

我有一个pickerView,根据pickerView中的选择,我想要一个按钮(计算按钮)来执行两个数学运算之一。 pickerView有一个组件,2行男性和女性。如果用户选择男性,然后点击计算按钮,我希望程序使用一个公式。如果用户选择女性,然后他的计算按钮,我希望程序使用不同的公式。我累了用。

-(IBaction)caclulate{

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

(“做公式0和1”不是实际的代码......我有数学公式,但那些对这个问题并不重要,所以我这么做了)

但是,这给我带来了两个错误。 pickerView unclared和objectAtIndex未声明。我是编程的新手,所以我想做的就是远离基础......

任何人都知道如何做我需要的事情吗?

更新

-(IBAction)calculate{

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

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

这就是我所说的,现在当我点击计算按钮时,我收到一个错误

[会议开始于2012-08-08 16:04:33 -0500。] 2012-08-08 16:05:26.580 CalorieAppFinal [4289:207] *由于未捕获的异常'NSRangeException'终止应用程序,原因:'* - [NSMutableArray objectAtIndex:]:索引1超出边界[ 0 .. 0]'

当我取出if语句并单独尝试每个公式时,应用程序运行没有问题..

1 个答案:

答案 0 :(得分:1)

您只需要:

[pickerView selectedRowInComponent:0];

这将返回您选择的行,在您的情况下为0或1

至于pickerView没有被声明,我不确定你试图使用什么pickerView,或者它应该被声明的地方。如果您已经引用了sexPickerView,请忽略该检查并直接使用sexPickerView

修改

为了回应您的错误,问题在于您尝试检查所选内容的方式。您只有1个组件,因此您只能调用

[sexPickerView selectedRowInComponent:0];

您将0更改为1,但它不起作用。该函数返回的是您要检查的01。所以你的计算函数应该是这样的:

-(IBAction)calculate{

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

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