非常奇怪的核心数据错误iOS

时间:2015-11-02 21:18:17

标签: ios string core-data indexing nsentitydescription

我正在构建一个食谱应用程序,可以保存带有图像和标题的食谱。标题字符串和图像一样保存得很好,但是当我从核心数据中提取标题时,标签文本就会显示出来。

enter image description here

它在核心数据中保存为字符串,以下是保存和检索它的方法。

保存

- (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会使用正确的条目进行更新!

enter image description here

然而,当我删除第一个时,它会显示之前的正确条目。

enter image description here

enter image description here

这是我更新详细信息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]; 
    }

我已经删除了手机上的应用并再次运行但是这种情况一直在发生?任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:2)

description是由NSObject提供的方法,用于说明对象。不要为您的核心数据字段指定相同的名称。编辑应该警告你这件事。哪个字段addRecipeWithTitle: description:...实际存储了该参数?