我正面临这个错误:
Assertion failure in -[UITableView _endCellAnimationsWithContext:]
当我尝试使用insertRowsAtIndexPaths:withRowAnimation:
基本上我有NSMutableArray
个对象,请调用此self.objects
。
我正在添加对象:
MyObject *something = [MyObject new];
[self.objects addObject:something];
NSInteger count = self.objects.count;
NSIndexPath *indexPath = [NSIndexPath indexPathForRow:0 inSection:count];
[self.tableView insertRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationAutomatic];
需要注意的是,我使用section
而不是row
来实现单元格间距。
更新
错误讯息:
*** Assertion failure in -[UITableView _endCellAnimationsWithContext:], /BuildRoot/Library/Caches/com.apple.xbs/Sources/UIKit/UIKit-3512.30.14/UITableView.m:1704
数据源方法:
-(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
return [self.objects count];
}
-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
return 1;
}
答案 0 :(得分:2)
代码哪个有效:
MyObject * something = [MyObject new];
[self.objects addObject:something];
NSInteger count = self.objects.count;
[self.tableView insertSections:[NSIndexSet indexSetWithIndex:count-1] withRowAnimation:UITableViewRowAnimationAutomatic];
说明强>
在您的表格视图实施中,您使用一行来访问到达部分。并且您正在尝试将行插入到不可用(已创建)的部分。 所以你必须首先插入只有你可以插入行的部分(在你的实现中你每个部分有一行,所以只插入部分)。
答案 1 :(得分:0)
将是
NSIndexPath *indexPath = [NSIndexPath indexPathForRow:0 inSection:count-1];