Ios 在不使用重载数据的情况下向UITableView添加行

Ios 在不使用重载数据的情况下向UITableView添加行,ios,objective-c,uitableview,reloaddata,nsindexpath,Ios,Objective C,Uitableview,Reloaddata,Nsindexpath,我有一个ViewController,它创建了一个新对象,然后又回到FirstViewController。m我有一个unwind方法,它应该用新对象的一行更新tableView。使用reloadData方法不会起作用,因为它会重新加载所有单元格,这会影响我在这些单元格中使用的方法。我只想添加一个新单元格,而不重新加载整个tableView。我的展开方法如下所示: -(IBAction)unwind:(UIStoryboardSegue *)segue { ABCAddItemViewC

我有一个ViewController,它创建了一个新对象,然后又回到FirstViewController。m我有一个unwind方法,它应该用新对象的一行更新tableView。使用reloadData方法不会起作用,因为它会重新加载所有单元格,这会影响我在这些单元格中使用的方法。我只想添加一个新单元格,而不重新加载整个tableView。我的展开方法如下所示:

-(IBAction)unwind:(UIStoryboardSegue *)segue {
    ABCAddItemViewController *source = [segue sourceViewController];
    ABCItem *item = source.object;

    if (item != nil) {
        [self.objectArray addObject:item];

        [self.tableView reloadData];
    }
}
我尝试添加这些行而不是[self.tableView reloadData]:

NSIndexPath *indexPath = [NSIndexPath indexPathForRow:[self.objectArray indexOfObject:item] inSection:0];
[self.tableView insertRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationLeft];
但是,应用程序崩溃,我收到以下消息:

无效更新:节0中的行数无效。人数 更新(1)后现有节中包含的行必须是 等于该节中包含的行数,在 更新(1),加上或减去从中插入或删除的行数 该部分(插入1,删除0)加上或减去 移入或移出该节的行(0移入,0移出)

tableView中的行数由
部分:
方法中的
[self.objectArray count]
确定


我怎样才能做到这一点?或者有更好的方法吗?

错误是,界面更新预期显示2行,但更新后数据源仅包含1行

您的“item”对象是否为
[NSNull null]

如果(item!=nil)项是
[NSNull null]
值,则行
可以等于true

你能把这张额外的支票放进去吗

if(item != nil && item != [NSNull null])
{
    ...
}
或者使用断点和调试器打印项的值:

lldb> po item

在调用
insertRowsAtIndexPath
之前,必须使用附加数据更新数据源(
self.objectArray
)。我试图替换
[self.tableView reloadData]
行,但这产生了我提到的错误。在此之前,我将对象添加到数组中。调用
reloadData
不会给出您发布的错误。这将仅来自对
insertRowsAtIndexPaths:
的调用。顺便说一句,您需要在将行添加到数组的同一位置插入行。我不能使用
reloadData
,因为重新加载整个表会重新启动某些方法