核心数据错误:从图像CoreData中的函数_PFFaultHandlerLookupRow调用_Unwind_Resume

时间:2011-01-07 02:44:09

标签: iphone ios core-data


我从Core Date得到了这个奇怪的错误,我无法理解为什么 当我删除UITableView的一行时,执行以下代码 我将一个字符串和一个对象传递给下面的方法,它在具有该字符串并具有该对象的外键的数据库表中获取该文章。然后我删除该对象并重新加载表。

- (void)deleteFavorite:(NSString *)link inFolder:(Favorites *)f {
    NSFetchRequest *request = [[NSFetchRequest alloc] init];
    NSEntityDescription *favsDecriptor = [NSEntityDescription entityForName:@"Favorites" inManagedObjectContext:context];
    [request setEntity:favsDecriptor];
    NSPredicate *predicate = [NSPredicate predicateWithFormat:@"(belongsTo == %@) AND (link = %@)", f, link];
    [request setPredicate:predicate];

    NSError *error = nil;   
    NSMutableArray *fav = [[NSMutableArray alloc] init];
    fav = [[context executeFetchRequest:request error:&error] retain];
    if (![context save:&error]) {
        NSLog(@"Cannot fetch the story from the fetch request.");
    }

    NSLog([[fav objectAtIndex:0] title]);
    error = nil;
    [context deleteObject:[fav objectAtIndex:0]];
    if (![context save:&error]) {
        NSLog(@"Can't delete the fav! %@", error);
    }
}

应用程序立即崩溃,我在控制台中收到此消息。 但是当我之后启动应用程序时,该行已被删除。

Detected an attempt to call a symbol in system libraries that is not present on the iPhone:
_Unwind_Resume called from function _PFFaultHandlerLookupRow in image CoreData.

请帮忙!
提前感谢大家!

2 个答案:

答案 0 :(得分:2)

这可能与Core Data本身的错误有关。我出现了同样的错误(我在这里询问了这个问题),我唯一的解决方法是更改​​谓词中仍然允许相同结果的关键字。需要一些实验来找到正确的组合。不理想,但根据我的经验,这是我能提供的最佳答案。

答案 1 :(得分:2)

您是否可能持有对删除对象的引用,或者删除的对象是观察者,并且在删除之后收到回调?我最近有类似的东西,虽然略有不同的错误信息。在我的情况下,我在删除时也崩溃了(在某些情况下),但是当我重新启动时,删除的对象实际上已被删除。

如果尚未执行此操作,请在“运行”菜单下选择“停止Objective-C异常”。这有助于我找出崩溃的根本原因。在我的例子中,KVO观察者得到了已删除的NSManagedObject属性值的变化回调。