我有一个案例,我正在使用 dispatch_async() 中的自定义单元格子视图读取 UITableview 的内容,如下所示:
dispatch_async(myQueue, ^ {
[self filterArrays];
[self updateSlotData];
} );
在 updateSlotData 内部:我正在尝试访问 uitableviewcell 的子视图,如下所示:
for (int i = 1 ; i <= [slotTable numberOfRowsInSection:0]; i++) {
SlotDataCell *cell = (SlotDataCell *)[slotTable cellForRowAtIndexPath:[NSIndexPath indexPathForItem:i-1 inSection:0]];
NSLog(@"iterating inside %i %i %i",[cell.intTF.text length],[cell.toTF.text length],[cell.fromTF.text length]);
if(![cell.intTF.text length] || ![cell.toTF.text length] || ![cell.fromTF.text length]){
outdatedTF = [NSString stringWithFormat:@"Slot %i timing",i];
newSlot = false;
return NO;
}
}
在调用重新加载数据时:isDBSelected = false; 添加模式=假;[slotTable 重载数据];
-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
if(tableView == slotTable){
if(isDBSelected){
if(addMode){
return [countArray count] + 1;
}else{
return [countArray count];
}
}else{
NSLog(@"new template creation started");
return 1;
}
}
return 0;
}
表重新加载,第一行初始化为 nil。其他行似乎没有消失。预期结果:仅创建一行。