我想在 UITableview 中加载大约 6000 - 8000 行。我使用异步调用从服务器获取数据,当我获取数据时我调用
[tableView 重载数据]
这是为了刷新表格视图。但是由于某种原因,我的应用程序卡住并冻结了。当我调试时,我发现 cellforrowatindexpath 被调用了 6000 次(在主线程上)并且 dequeueReusableCellWithIdentifier 总是返回 null 。
- (UITableViewCell *)cellForRowAtIndexPath:(NSIndexPath *)indexPath{
CDTableRowCell *cell = nil;
// Create and Resue Custom ViewCell
static NSString *CellIdentifier = @"CellIdentifier";
cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
// got into render/theme objec
if(cell == nil){
cell = [[CDTableRowCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier];
}
// MODIFYING CELL PROPERTIES HERE FROM AN ARRAY
// NO HTTP CALLS
}
此外,一旦我开始滚动,tableview 就会开始重用单元格,但在此之前我从不总是创建一个新单元格。任何线索为什么会出现这种奇怪的行为???