我正在构建一个食谱应用程序,可以保存带有图像和标题的食谱。标题字符串和图像一样保存得很好,但是当我从核心数据中提取标题时,标签文本就会显示出来。
它在核心数据中保存为字符串,以下是保存和检索它的方法。
保存
- (void)saveRecipe {
[[RecipeController sharedInstance]addRecipeWithTitle:self.titleField.text description:self.descriptionField.text andImage:self.chosenImage];
[[NSNotificationCenter defaultCenter]postNotificationName:@"recipeSaved" object:nil];
[self refreshTableViewData];
}
检索
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
TableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"cell"];
Recipe *recipe = [RecipeController sharedInstance].recipes[indexPath.section];
cell.recipeImageView.image = [UIImage imageWithData:recipe.picture];
cell.descriptionLabel.text = recipe.description;
cell.titleLabel.text = recipe.title;
return cell;
}
问题二......
这刚刚开始发生并且工作正常一段时间,但在详细VC中,当我保存第二个具有不同标题的条目时,它只是填充表视图,其中相同的条目始终存在于此(它是重复的表视图)...但是当我选择它时,详细信息VC会使用正确的条目进行更新!
然而,当我删除第一个时,它会显示之前的正确条目。
这是我更新详细信息VC并获得正确输入的代码...
- (void)updateWithRecipe:(Recipe *)recipe {
self.recipe = recipe;
self.imageView.image = [UIImage imageWithData:recipe.picture];
self.titleField.text = recipe.title;
self.descriptionField.text = recipe.description;
}
VC中的segue方法...(这样可以传递正确的条目,但不会在表格视图中以这种方式显示)
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
DetailViewController *detailViewController = [DetailViewController new];
detailViewController.recipe = [RecipeController sharedInstance].recipes[indexPath.row];
[self.navigationController pushViewController:detailViewController animated:YES];
}
我已经删除了手机上的应用并再次运行但是这种情况一直在发生?任何帮助将不胜感激!
答案 0 :(得分:2)
description
是由NSObject
提供的方法,用于说明对象。不要为您的核心数据字段指定相同的名称。编辑应该警告你这件事。哪个字段addRecipeWithTitle: description:...
实际存储了该参数?