Assertion failure on picker view

2019-01-23 23:47发布

I'm getting an assertion failure while scrolling a picker view w/ zero data(zero rows). While scrolling the picker view I'm getting this crash. Testing on iOS 6

* Assertion failure in -[UITableViewRowData rectForRow:inSection:], /SourceCache/UIKit_Sim/UIKit-2372/UITableViewRowData.m:1630

* Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'request for rect at invalid index path ( 2 indexes [0, 0])'

Any help is appreciable.

2条回答
来,给爷笑一个
2楼-- · 2019-01-24 00:01

The answer is actually very simple! After having some trouble with this myself, I discovered that you must set the delegate and the dataSource to the view controller that the picker view is connected to.

查看更多
狗以群分
3楼-- · 2019-01-24 00:14

I've the same problem

I don't know reason why it is happen,

but it can be fixed in ios6 (how it works in ios5 I didn't check):

- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component
{
    if ([self getCount] == 0)
        return 1;
     return [self getCount];
}

- (UIView *)pickerView:(UIPickerView *)pickerView viewForRow:(NSInteger)row forComponent:   (NSInteger)component reusingView:(UIView *)view {
   if ([self getCount] == 0)
       return nil;
}
查看更多
登录 后发表回答