【发布时间】:2016-06-27 12:58:56
【问题描述】:
为 UIpickerview 滚动另一个组件时,组件更改时应用程序崩溃。
MutableArray 一个以米为单位的高度,另一个以英尺英尺英寸为单位。 两个计数确实有不同的计数计 200 计数。 英尺阵列数 99。
第一个组件确实有两个测量单位英尺和米,基于我显示各自阵列的选择。计数中
- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component {
if (pickerView == self.heightPickerView && component == 0)
return [self.heightTypeArray count];
else if (pickerView == self.heightPickerView && component == 1){
if ([self.heightPickerView selectedRowInComponent:0] == 0)
return [self.meterListArray count];
else if ([self.heightPickerView selectedRowInComponent:0] == 1)
return [self.feetInchListArray count];
}
return 0;
}
返回时崩溃 [self.feetInchListArray objectAtIndex:row]; 由于数组超出范围。
- (NSString *)pickerView:(UIPickerView *)pickerView
titleForRow:(NSInteger)row
forComponent:(NSInteger)component{
if (component == 0) {
return [self.heightTypeArray objectAtIndex:row];
}
else if (pickerView == self.heightPickerView && component == 1){
if ([self.heightPickerView selectedRowInComponent:0] == 0)
return [self.meterListArray objectAtIndex:row];
else if (pickerView == self.heightPickerView && [self.heightPickerView selectedRowInComponent:0] == 1){
return [self.feetInchListArray objectAtIndex:row];
}
崩溃日志:
* 由于未捕获的异常“NSRangeException”而终止应用程序,原因:“* -[__NSArrayM objectAtIndex:]:索引 114 超出范围 [0 .. 98]”
*** 首先抛出调用栈:
任何人都可以建议如何解决滚动一个选择器组件并立即滚动另一个组件应用程序崩溃的问题。
是否有任何方法在另一个组件完成滚动之前不允许滚动组件。
【问题讨论】:
-
您的数组的索引以 98 结束,您正在尝试到达索引 114..
标签: ios objective-c uipickerview