我在自定义tableViewCell(子类)中有一个UIPickerView。我能够填充它并从中获取数据。或多或少。

我实现了此方法,以便每次更改某些组件时都能获取信息:

-(void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component{



    if (self.pickerDelegate !=nil &&[self.pickerDelegate conformsToProtocol:@protocol(PickerCellDelegate)]) {


        if ([self.pickerDelegate respondsToSelector:@selector(somethingOnThePickerIsSelected:selectionArray:)]){


            NSMutableArray *pepe;

            for (int i=0; i<[[self.cellPickerInputDictionary objectForKey:@"components"] count]; i++) {

                NSObject*foo=[[[self.cellPickerInputDictionary objectForKey:@"components"] objectAtIndex:i] objectAtIndex:[self.cellPicker selectedRowInComponent:i]];

                [pepe addObject:foo];

                NSLog (@"foo: %@", foo);

            }

            NSLog (@"pepe: %@", pepe);

          [self.pickerDelegate somethingOnThePickerIsSelected:self selectionArray:pepe];


        }
    }


}


我有两个组成部分,但是为了使其“通用”(与特定情况无关),我不想在这里和那里硬写数字。

在所示的示例中,我不明白为什么NSLog对变量foo显示正确,而对NSMutableArray pepe显示null。

有任何想法吗?提前致谢。

最佳答案

您没有分配可变数组pepe。

NSMutableArray *pepe=[[NSMutableArray alloc]init];


实际上,您可以在init方法上执行此操作,并将pepe声明为属性

10-08 05:50