1

我有一个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 未声明和 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 语句并单独尝试每个公式时,应用程序运行没有问题..

4

1 回答 1

1

所有你需要的是:

[pickerView selectedRowInComponent:0];

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

至于pickerView未声明,我不确定pickerView您要使用什么,或者应该在哪里声明。如果您已经有参考sexPickerView,请忽略该检查并sexPickerView直接使用

编辑

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

[sexPickerView selectedRowInComponent:0];

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

-(IBAction)calculate{

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

//female
 if ([sexPickerView selectedRowInComponent:0] == 1) {
    "do formula 1"
 }
}
于 2012-08-08T20:30:03.420 回答