我正在从从服务器接收的数据中填充一个表格 View 。数据是给定时间范围内的用户事件列表。一种这样的事件是“登录”。我不希望用这个字符串填充我的表格 View ,但我不确定在填充我的表格 View 时如何跳过它。
这是我填充单元格的方式
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{ static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];
@try{
NSManagedObject *object = [self.fetchedResultsController objectAtIndexPath:indexPath];
NSString *action = [object valueForKey:@"theActionName"];
if ([action isEqualtoString:@"Login"]) {
return cell;
}
return cell;
}@catch (NSException *ex) {
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];
return cell;
}
}
如您所见,我尝试使用
return cell
但是您可能知道,当显示表格时,它会给我一个空白单元格。我确信这有一行简单的代码,但我对我使用的搜索词一无所知。有人可以请教我!谢谢!附言您可能会认为我没有在任何单元格中添加任何内容,但我提取了一堆代码以保持简短。
更新:
感谢您对“isEqualtoString:”的提醒:“isEqual”一切正常,但我改变了它,因为我收到了很多这样做的建议。但这不是我要问的。
更清楚地说,如果我有一个包含以下术语的数组: View 、 View 、登录、 View 。当我的表格 View 被填充时,我会有 4 个单元格说;查看,查看,登录,查看。我只是想忽略登录一词,以便我有 3 个单元格都表示 View 。谢谢!
最佳答案
有很多方法可以做到这一点。
我相信 UITabelView
应该显示它的数据源(这里的数据源是 self.fetchedResultsController
)包含的内容。
你可以做的是创建另一个NSArray
来自 self.fetchedResultsController
其中不包含此对象。
试试这个:
NSMutableArray *newSource = [[NSMutableArray alloc] init];
for(int i = 0; i < self.fetchedResultsController.count ; i++)
{
NSManagedObject *object = [self.fetchedResultsController objectAtIndexPath:indexPath];
NSString *action = [object valueForKey:@"theActionName"];
if (![action isEqual:@"Login"])
{
[newSource addObject:action];
}
}
[tableView reloadData];
现在使用 newSource 而不是 self.fetchedResultsController
你可能认为多用一个数组不好。但是相信它比使用带有条件的相同数组要容易得多。当您使用
UITableView
执行某些操作时,您不必担心这种情况。就像使用 indexpath 删除对象一样。
关于ios - 填充我的 UITableView 时如何跳过特定字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18605541/