我正在学习如何开发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分钟”)之类的东西然后做其余的但我没有工作。
任何帮助表示赞赏。正如我所说,我只是在学习,所以请尝试新解释你的解释。
谢谢
答案 0 :(得分: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:
方法中进行任何额外的工作。