Objective c 如何在变量中存储pickerview选择?

Objective c 如何在变量中存储pickerview选择?,objective-c,ios,uipickerview,Objective C,Ios,Uipickerview,为什么不将pickerView选择存储到我的mainMatrix对象的属性中 - (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component { [mainMatrix setM:[[self.numbers objectAtIndex:[pickerView selectedRowInComponent:0]] intValue]];

为什么不将
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]];
}

您是否有相同的数组来填充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]];
      }
}

您是否有相同的数组来填充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]];
      }
}

将您的代码拆分,以便您可以实际看到发生了什么:

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
在代码的这一点上为非nil。还要确保
self.numbers
为非零。最后(实际上是第一个),确保您已在选择器视图上设置了
委托。

将代码拆分,以便您可以实际看到发生了什么:

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
在代码的这一点上为非nil。还要确保
self.numbers
为非零。最后(实际上是首先),确保您已在picker视图上设置了
委托

检查
[self.numbers objectAtIndex:[pickerView selectedRowInComponent:0]
是否实际返回了正确的值您需要在对pickerView中所选值的任何“完成”按钮执行操作时使用此代码…检查
[self.numbers objectAtIndex:[pickerView SelectedRowUncomponent:0]
实际返回的是正确的值您需要使用此代码对pickerView中所选值的任何“完成”按钮执行操作。。。