Iphone 核心数据错误:由于未捕获异常而终止应用程序';NSInvalidArgumentException';,原因:';Can';无法对对象0执行正则表达式匹配

Iphone 核心数据错误:由于未捕获异常而终止应用程序';NSInvalidArgumentException';,原因:';Can';无法对对象0执行正则表达式匹配,iphone,xcode,core-data,crash,Iphone,Xcode,Core Data,Crash,我正在创建一个核心数据收藏夹功能。我在配方表中有一个最喜欢的布尔类型属性。有两个视图 第一个视图供用户选择收藏夹。 第二视图显示所选收藏夹的列表 当我转到第一个视图时,该功能工作正常。但是,在我转到第二个视图并再次返回第一个视图后,应用程序崩溃。我得到以下错误: 更新: 我没有更新数据库是不是有问题?我已经到处搜索并找到了以下方法,我应该在哪里将其包含到代码中 [上下文刷新对象:配方合并更改:否] 有人能帮忙吗?谢谢 尝试放置[NSFetchedResultsController delet

我正在创建一个核心数据收藏夹功能。我在配方表中有一个最喜欢的布尔类型属性。有两个视图

第一个视图供用户选择收藏夹。 第二视图显示所选收藏夹的列表

当我转到第一个视图时,该功能工作正常。但是,在我转到第二个视图并再次返回第一个视图后,应用程序崩溃。我得到以下错误:

更新: 我没有更新数据库是不是有问题?我已经到处搜索并找到了以下方法,我应该在哪里将其包含到代码中

[上下文刷新对象:配方合并更改:否]


有人能帮忙吗?谢谢

尝试放置
[NSFetchedResultsController deleteCacheWithName:@“root”]

-(NSFetchedResultsController*)fetchedResultsController{
…}


它解决了我的问题。希望有帮助

回溯点是否位于您发布的代码附近?我已放置断点,并在NSManagedObjectContext*context=recipe.managedObjectContext处停止;是的,但在错误发生后,您是否检查控制台以进行回溯?它仅显示以下内容:挂起的断点1-“RecipeDetailViewController.m”:864“已解决的挂起断点2-“RecipeDetailViewController.m”:860“已解决的挂起断点3-“RecipeDetailViewController.m”:852断然的
    2012-01-09 18:44:09.455 coredata[1354:12503] CoreData: error: Serious application error.  Exception was caught during Core Data change processing.  This is usually a bug within an observer of NSManagedObjectContextObjectsDidChangeNotification.  Can't do regex matching on object 0. with userInfo (null)
    2012-01-09 18:44:09.457 coredata[1354:12503] * Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Can't do regex matching on object 0.'


    - (IBAction)favoriteButtonPressed:(id)sender {

 if (recipe.favorite == 0) {

 [favoriteButton setSelected:YES];
 favoriteButtonSelected = 1;
 [favoriteButtonImage setImage:[UIImage imageNamed:@"selected.png"] forState:UIControlStateNormal];

     self.recipe.favorite = [NSNumber numberWithInteger:1];

 }else {

 [favoriteButton setSelected:NO];
 favoriteButtonSelected = 0;
 [favoriteButtonImage setImage:[UIImage imageNamed:@"unselected.png"] forState:UIControlStateNormal];

     self.recipe.favorite = [NSNumber numberWithInteger:0];

 }
    NSManagedObjectContext *context = recipe.managedObjectContext;
    NSError *error;
 if (![context save:&error]) {
  NSLog(@"Tried to save favorite Unresolved error %@, %@", error, [error userInfo]);abort();
     }
} 
[context refreshObject:recipe mergeChanges:NO];
- (NSFetchedResultsController *)fetchedResultsController{
...}