0

我正在学习如何开发 ios 应用程序,我遇到了一个需要帮助的问题。

我使用以下代码从正在解析的类中检索数据。

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

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *simpleTableIdentifier = @"RecipeCell";

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:simpleTableIdentifier];

if (cell == nil) {
    cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:simpleTableIdentifier];
}

Recipe *recipe = [recipes objectAtIndex:indexPath.row];

UIImageView *imageView = (UIImageView*) [cell viewWithTag:100];
imageView.image = [UIImage imageNamed:recipe.imageFile];
UILabel *nameLabel = (UILabel*) [cell viewWithTag:101];
nameLabel.text = recipe.name;
UILabel *prepTimeLabel = (UILabel*) [cell viewWithTag:102];
prepTimeLabel.text = recipe.prepTime;

return cell;

}

我的表包含准备时间值,它是准备食谱所需时间的数值。我希望用户能够根据他们的准备时间查看食谱。假设我有一个按钮,用户可以看到要准备的最快的饭菜。我尝试过使用 if 语句和 while 循环,但没有取得太大的成功。我已经尝试过诸如 if (prepTime stringValue isEqualToString:@"30 mins"] 之类的东西,然后做剩下的,但我没有工作。

任何帮助表示赞赏。正如我所说,我只是在学习,所以请尝试更新您的解释。

谢谢你

4

1 回答 1

0

使用PFQueryTableViewController,您可以指定 Parse 查询用于检索表视图的数据。在这种情况下,您可以根据prepTime.

在您的视图控制器中,实现如下内容:

- (PFQuery *)queryForTable
{
  PFQuery *query = [PFQuery queryWithClassName:@"yourRecipeClassName"];
  [query whereKey:@"prepTime" lessThan:self.maxPrepTime];
  /*
    Customise as needed, e.g., could be:
    [query whereKey:@"prepTime" equalTo:@30];
  */
  return query;
}

您可以向视图控制器添加一个属性来保存当前选定的 prepTime(例如@property NSNumber *maxPrepTime),然后更改选定的过滤器,执行以下操作:

self.maxPrepTime = @60;
[self.tableView reloadData];

您不需要在您的tableView:cellForRowAtIndexPath:方法中做任何额外的工作。

于 2013-08-20T01:53:22.207 回答