核心数据/ NSFetchedResultsController错误

Dan*_*ood 5 iphone cocoa-touch core-data uikit

我在核心数据/ NSFetchedResultsController上遇到了一些麻烦.我不完全确定错误在哪里,因为消息很模糊.

当获取的结果控制器没有提取任何对象时,我有一个插入多个对象的问题.如果我尝试插入几个没有提取的对象,以下代码将崩溃并出现以下错误.如果我使用它来插入一个对象,它不会崩溃,如果已经提取了对象,它不会崩溃.

崩溃发生在save:方法上.NSArray中的标题,在此示例中,它包含5个字符串.

严重的应用错误.在Core Data更改处理期间捕获到异常:* - [NSCFArray objectAtIndex:]:index(4)超出bounds(1)with userInfo(null)*由于未捕获的异常'NSRangeException'终止应用程序,原因:'*** - [ NSCFArray objectAtIndex:]:index(4)超出bounds(1)'

NSEnumerator *titleEnumerator = [titles objectEnumerator];
NSString *title;
NSMutableArray *tasks = [NSMutableArray array];
Todo *todo;

while(title = [titleEnumerator nextObject])
{
    todo = (Todo *)[NSEntityDescription insertNewObjectForEntityForName:@"Todo" inManagedObjectContext:managedObjectContext];
    todo.title = title;
    todo.state = [NSNumber numberWithInteger:TodoStateIncomplete];
    todo.priority = [NSNumber numberWithInteger:TodoPriorityNormal];
    todo.timeStamp = [NSDate date];
    todo.dueDate = [NSDate distantFuture];
}

NSError *error;

if(![managedObjectContext save:&error])
{
    NSLog(@"Unresolved error %@ %@", error, [error userInfo]);
    abort();
}
Run Code Online (Sandbox Code Playgroud)

pet*_*ert 5

以下是Marcus Zarra(Core Data book的作者)的提示:

删除tableView中的行时出现Core Data错误

"尝试打破objc_exception_throw并查看抛出异常的方法.这应该有助于追踪它"