0
我有一個UITableView,我想在視圖控制器的viewDidLoad中修改它。 但UITableView不查詢它的dataSource在viewDidLoad中,所以我先調用reloadData,然後用beginUpdates和endUpdates修改它的單元格。 (在我的情況下,我只是刪除了一些單元格)。 但當endUpdates被稱爲它拋出異常:UITableView endUpdates在viewDidLoad中調用時崩潰
[__NSArrayM insertObject:atIndex:]:索引1超出界限爲空數組。
這個例外是什麼意思? 我知道我將正確的數字返回給UITableView,因爲如果我在viewDidAppear之後調用它,它完美地工作,它只是在viewDidLoad中不起作用。
編輯:
這裏是我的代碼
for (int i = 0; i < [customDataSource numberOfSectionsInTableView]; i ++) {
NSInteger n = [customDataSource tableView:self numberOfRowsInSection:section];
NSMutableArray* array = [[NSMutableArray alloc] initWithCapacity:n];
for (NSInteger i = 0; i < n; i++)
[array addObject:[NSIndexPath indexPathForRow:i inSection:section]];
[super beginUpdates];
[super deleteRowsAtIndexPaths:array withRowAnimation:UITableViewRowAnimationNone];
[super endUpdates];
}
當我提出這個代碼viewDidAppear到viewDidLoad中或viewWillAppear中它會崩潰。
您是在調用開始/結束更新之前還是之後設置陣列? –
我在applicationDidFinishedLaunchingWithOptions中設置了我的數組:我的appDelegate當然是在調用viewDidLoad之前創建的。 – Ocelot
請修改您的帖子以顯示您的viewDidLoad。 –