5
 Assertion failure in -[UISectionRowData refreshWithSection:tableView:tableViewRowData:], /SourceCache/UIKit/UIKit-2380.17/UITableViewRowData.m:400

 *** Terminating app due to uncaught exception 'NSInternalInconsistencyException',     reason:'Failed to allocate data stores for 997008923 rows in section 0. Consider using fewer rows'

我的代码

 -(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
  {

   return 1;

  }


- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section

{

   return [appDelegate.purchaseArray count];

}



- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:  (NSIndexPath *)indexPath
   {
    static NSString *CellIdentifier = @"cell";

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil) {
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault         reuseIdentifier:CellIdentifier];
    }
    return cell;
}    

-(void)viewWillAppear:(BOOL)animated
{

    [cartTbl reloadData];

}

我没明白这有什么问题?

4

4 回答 4

8

检查您的tableView:heightForRowAtIndexPath:. 也许你正在返回类似NaN//而不是高度的东西+inf-inf那是我的错误。

请记住,这不是除以零的类型double和类型的崩溃:float

double d = 5.0;
double r = d/0.0;

所以这可以帮助你:

if (isnan(r) || isinf(r)) {
    // ...
}
于 2014-10-20T09:56:28.840 回答
5

我也失败了-[UISectionRowData refreshWithSection:tableView:tableViewRowData:]。在我的情况下,这是由于使用时设置太小造成的estimatedRowHeight

func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
    return UITableViewAutomaticDimension
}

用于自动调整 tableView 的单元格。设置estimatedRowHeight改为2.0解决1.0问题。

于 2017-09-27T11:19:32.947 回答
1

由于不同的原因,我遇到了这样的错误。当我决定更改视图模型中的某些内容(我将表绑定到的对象)时,我的应用程序运行良好。我删除了一个属性,然后重新编译。突然,应用程序抛出了这个错误。

事实证明,代码中仍然存在对编译器没有捕获到的已删除属性的引用。我已经清理和重建了几次,编译器从未发现我错过的那个错误。

重新启动 xcode 导致构建失败,违规行现在突出显示为错误。一旦我解决了这个问题,一切就又好了。

如果您遇到这样的错误访问错误,并在调试器中看到奇怪的东西,例如属性的值应该分配给其他属性,那么您可能会遇到一个错误,该错误应该使您的构建无法编译该 xcode 只是没有捕获不知何故。重新启动可能会解决它 - 值得一试。

于 2016-04-26T12:53:38.190 回答
0

return [appDelegate.purchaseArray count];看起来像一个垃圾值。确保它已初始化。

于 2015-04-30T18:41:51.763 回答