我有两个不同的UIViewController
s。
第一个有NSMutableArray
个订阅加载到UITableView
。
第二个控制器执行某些操作,并在部分代码中重新加载所有订阅。
当我打开第一个Controller时,我使用ViewDidAppear
方法重新加载表数据(订阅)。
在此操作期间,我的应用程序崩溃了。我想因为我在后台重新加载表,订阅列表正在改变。
有没有办法在桌面上重新加载并让用户滚动表格,同时重新加载它?
关于错误的更多信息
Uncaught exception: *** -[__NSArrayM objectAtIndex:]: index 3 beyond bounds [0 .. 2]
有2个订阅始终存在... TableView
尝试访问索引3
关于错误的更多信息
答案 0 :(得分:0)
在订阅列表加载完成后调用tableview reload方法。 如果您使用单独的类来加载订阅,则可以使用委托通知主视图控制器已完成订阅加载。否则,您可以使用NSNotificationCenter。
答案 1 :(得分:0)
您需要将section中的行数返回为数组中对象的总和。
return [self.theArrayWithTheData count];
您的问题是,当您使用其他阵列重新加载时,它会使用旧的行数,因此当您滚动其崩溃时。
答案 2 :(得分:0)
重新加载数据有助于避免在调用[__NSArrayM objectAtIndex:]之前发生崩溃,使用全局变量对行数进行数组检查。