我在自定义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声明为属性