如何从数组中选择要在UITableView中显示的特定项?

时间:2012-09-05 14:28:11

标签: ios uitableview nsmutablearray

我是iOS编程的新手,我正在编写我的第一个应用程序。我有一个带有项目的NSMutableArray。这些对象有标题,id等和喜欢的属性。最喜欢的属性是bool,并告知用户是否将项目添加到收藏夹。现在我的问题是:在UITableView中,我只希望所有带有favorite = YES的项目都显示在'table'中。我怎么做 ?在进入方法cellForRowAtIndexPath之前,是否必须遍历数组并将这些项保存在新数组中?喜欢在viewDidLoad中吗?因为我试图在方法cellForRowAtIndexPath方法中设置一个条件,但是那时只显示了一堆空单元格+我最喜欢的项目。帮助Pleese!

2 个答案:

答案 0 :(得分:3)

我将通过数组循环使用for-in语句并创建一个新的* favoriteArray,其中包含所有要显示在tableView中的项目。 如下所示:

 NSMutableArray *favoriteArray = [NSMutableArray new];
for (Item *item in self.mutableArray) {
    if (item.favorite) {
        [favoriteArray addObject:item];
    }
}

答案 1 :(得分:0)

您可以使用喜欢的项目创建一个新数组,然后

 - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
    return  [favoriteArray count]
}

和cellForRoAtIndexPath

 - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {

Favorite * currentFaforite = [favoriteArray objectAtIndex:indexPath.row];
NSString *CellIdentifier = @"ProductCell";



UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
    cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
}
cell.textLabel.text = currentFaforite.name;

return cell; 
}