Assertion failure on picker view

主宰稳场 提交于 2019-11-27 17:15:07

问题


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.


回答1:


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;
}



回答2:


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.



来源:https://stackoverflow.com/questions/12672318/assertion-failure-on-picker-view

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!