我希望我的TableView
单元格之间有一些间距,所以我已将TableView
代码更改为:
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
// Return the number of sections.
return [_boxs count];
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
// Return the number of rows in the section.
return 1;
}
我的问题是我的“添加行\对象”代码崩溃了。我应该对此代码做出哪些更改?
有问题的代码:
SomeClass *newObject = [[SomeClass alloc]initWithTitle:@".....
[_boxs addObject:newObject];
NSIndexPath *indexPath = [NSIndexPath indexPathForRow:_boxs.count-1 inSection:0];
NSArray *indexPaths = [NSArray arrayWithObject:indexPath];
[self.tableView insertRowsAtIndexPaths:indexPaths withRowAnimation:NO];
[self.tableView selectRowAtIndexPath:indexPath animated:NO scrollPosition:UITableViewScrollPositionMiddle];
[self performSegueWithIdentifier:@"FirstDetailsSegue" sender:self ];
-boxs
是一个NSMutableArray。
这是我得到的错误: * 由于未捕获的异常'NSInternalInconsistencyException'而终止应用程序,原因:'尝试将第7行插入第0部分,但部分中只有1行更新'
后为0答案 0 :(得分:2)
您已在创建NSIndexPath
的行中切换了行和列。您需要将代码修改为
NSIndexPath *indexPath = [NSIndexPath indexPathForRow:0 inSection:_boxs.count-1];
如果您计划仅使用一个部分和多个行,则应更改委托方法以仅返回1个部分和[_boxs count]
行。在这种情况下,你的代码就可以了。
根据您的评论,看起来您想要插入新的部分而不是行。试试这个,
[self.tableView insertSections:[NSIndexSet indexSetWithIndex:_boxs.count-1] withRowAnimation:UITableViewRowAnimationAutomatic];
您可以从代码中删除insertRow行。