1

为什么不将pickerView选择存储到我的 mainMatrix 对象的属性中?

- (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component
{
    [mainMatrix setM:[[self.numbers objectAtIndex:[pickerView selectedRowInComponent:0]] intValue]];
    [mainMatrix setN:[[self.numbers objectAtIndex:[pickerView selectedRowInComponent:1]] intValue]];
}
4

2 回答 2

4

拆分你的代码,这样你就可以真正看到发生了什么:

NSUInteger selectedRow = [pickerView selectedRowInComponent:0];
int num = [self.numbers[selectedRow] intValue];
[mainMatrix setM:num];

selectedRow = [pickerView selectedRowInComponent:1];
int num = [self.numbers[selectedRow] intValue];
[mainMatrix setN:num];

现在您可以调试代码并查看实际发生的情况。可读、可调试的代码比把它全部塞进一行要好得多。

确保mainMatrix在代码中此时它不是零。还要确保self.numbers它是非零的。最后(实际上是第一个),确保您已delegate在选择器视图上设置了 。

于 2012-10-30T18:36:03.023 回答
0

您是否有相同的数组来填充pickerview 中的两个组件?如果是,请尝试此代码。

- (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component
{
    if(component == 0) {
          [mainMatrix setM:[[self.numbers objectAtIndex:row] intValue]];
      }else if(component == 1){
          [mainMatrix setN:[[self.numbers objectAtIndex:row] intValue]];
      }
}
于 2012-10-30T18:35:13.690 回答