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