使用UITableView发生奇怪的崩溃

时间:2013-07-15 12:31:53

标签: iphone ios objective-c uitableview

我有两个不同的UIViewController s。

第一个NSMutableArray个订阅加载到UITableView

第二个控制器执行某些操作,并在部分代码中重新加载所有订阅。

当我打开第一个Controller时,我使用ViewDidAppear方法重新加载表数据(订阅)。 在此操作期间,我的应用程序崩溃了。我想因为我在后台重新加载表,订阅列表正在改变。

有没有办法在桌面上重新加载并让用户滚动表格,同时重新加载它?

关于错误的更多信息

Uncaught exception: *** -[__NSArrayM objectAtIndex:]: index 3 beyond bounds [0 .. 2]

有2个订阅始终存在... TableView尝试访问索引3

关于错误的更多信息

3 个答案:

答案 0 :(得分:0)

在订阅列表加载完成后调用tableview reload方法。 如果您使用单独的类来加载订阅,则可以使用委托通知主视图控制器已完成订阅加载。否则,您可以使用NSNotificationCenter。

答案 1 :(得分:0)

您需要将section中的行数返回为数组中对象的总和。

return [self.theArrayWithTheData count];

您的问题是,当您使用其他阵列重新加载时,它会使用旧的行数,因此当您滚动其崩溃时。

答案 2 :(得分:0)

重新加载数据有助于避免在调用[__NSArrayM objectAtIndex:]之前发生崩溃,使用全局变量对行数进行数组检查。