0

我正在使用此功能获得 SIGTRAP

- (void)initFetchRequest
{    
    NSManagedObjectContext *context = document.managedObjectContext;
    NSFetchRequest *request = [[NSFetchRequest alloc] init];
    request.entity = [NSEntityDescription entityForName:@"Shindy" inManagedObjectContext:self.managedObjectContext];
    // Configure the request's entity, and optionally its predicate.
    NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"details" ascending:YES];
    NSArray *sortDescriptors = [[NSArray alloc] initWithObjects:sortDescriptor, nil];
    [request setSortDescriptors:sortDescriptors];

    fetchedResultsController = [[NSFetchedResultsController alloc]
                                              initWithFetchRequest:request
                                              managedObjectContext:context
                                              sectionNameKeyPath:nil
                                              cacheName:nil];

    // SIGTRAP here

    NSError *error = nil;
    [fetchedResultsController performFetch:&error];

    if (![self.fetchedResultsController performFetch:&error]) {
        NSLog(@"Unresolved error %@, %@", error, [error userInfo]);
    }
}

就在我评论的地方。我不确定为什么会收到此错误。控制台没有给我任何东西。崩溃的细节只是一个 0__kill。

我想补充一点,当第一次加载带有这个函数的视图时,没有崩溃。但是当我转到另一个视图时,将一些对象添加到 Core Data,然后关闭该视图。我原来的观点(有问题的观点)突然抛出 SIGTRAP 错误。

有任何想法吗?

4

1 回答 1

0

在您的代码中,您使用了对 的两个引用NSManagedObjectContext

  • context(对于获取的结果控制器)和
  • self.managedObjectContext(对于获取请求的实体)。

您应该验证这些是否确实相同。无论如何,对 FRC 及其初始化获取请求使用相同的变量要好得多。

错误的另一个来源可能是您的排序描述符。检查它是否按预期在其他地方工作。

于 2013-01-07T13:08:43.450 回答