私はうまく動作しているように見えるピッカービューを使用していますが、時々スタックトレースがクラッシュしてエラーが発生します。UIPickerViewスクロールエラーが発生してクラッシュする可能性がありますか?
これは私のピッカービューの設定ですが、正常に動作しますが、ランダムではアプリケーションがクラッシュする可能性があります。
何か原因が考えられますか?
- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)thePickerView {
return 1;
}
- (NSInteger)pickerView:(UIPickerView *)thePickerView numberOfRowsInComponent:(NSInteger)component {
return _pickerChannels.count;
}
- (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component {
UILabel *labelSelected = (UILabel*)[_channelPickerView viewForRow:row forComponent:component];
[labelSelected setTextColor:[UIColor whiteColor]];
self.channelGroupValue = [_pickerChannels indexOfObject:_pickerChannels[row]];
[[self delegate] sideBarDidScrollChannels:self.channelGroupValue];
[[self delegate] sideBarDidSetScrollChannels:self.channelGroupValue];
}
- (UIView *) pickerView: (UIPickerView *) pickerView viewForRow: (NSInteger) row forComponent: (NSInteger) component reusingView:(UIView *)view {
UILabel *label = (id)view;
if (!label)
{
label= [[UILabel alloc] initWithFrame:CGRectMake(0.0f, 0.0f, [_channelPickerView rowSizeForComponent:component].width,
[_channelPickerView rowSizeForComponent:component].height)];
label.textAlignment = NSTextAlignmentCenter;
label.textColor = [UIColor whiteColor];
[label setFont:[UIFont systemFontOfSize:17]];
label.text = _pickerChannels[row];
}
return label;
}
これは私がクラッシュに提供できる唯一の情報です:
クラッシュログを表示 – Himanth
どの部分ですか?デバッガで何も表示されません。 – jcad
label.text = _pickerChannels [component];このlabel.text = _pickerChannels [row]の代わりにこれを試してみてください。 –