Ios NSManagedObjectContext仅能正常工作几次,然后就停止工作

Ios NSManagedObjectContext仅能正常工作几次,然后就停止工作,ios,objective-c,core-data,Ios,Objective C,Core Data,在我试着问了两次并解释了我自己之后,我做了一个挖掘,我想我现在可以更好地解释我的问题了: 1) 我正在使用核心数据保存到NSManagedObjects:CoreDataTrap&coredataalltrap。 第一次,我解析一个大的xml,然后转换为数组,然后将细节添加到CoreDataAllTraps,我知道这个操作进行得很顺利,因为我做了一个日志 2) 然后,为了测试,我将获取所有记录并记录它们的总数 这些函数为我提供了正确的记录数。 3) 然后初始化几个变量 4) 然后初始化我的四叉树

在我试着问了两次并解释了我自己之后,我做了一个挖掘,我想我现在可以更好地解释我的问题了:

1) 我正在使用核心数据保存到
NSManagedObjects
CoreDataTrap
&
coredataalltrap
。 第一次,我解析一个大的xml,然后转换为数组,然后将细节添加到
CoreDataAllTraps
,我知道这个操作进行得很顺利,因为我做了一个日志

2) 然后,为了测试,我将获取所有记录并记录它们的总数

这些函数为我提供了正确的记录数。 3) 然后初始化几个变量

4) 然后初始化我的四叉树

这将返回我的断言错误

错误:FetchedObject没有记录

5) 然后,使用核心数据的所有其他函数都会返回错误,因为没有数据

相关(编号)代码:

旁注: *调用
initializeQuadTree
后,我正在初始化位置管理器。 *在location manager中,我有一个
dispatch\u async
,将整个代码包装在其中。 *完成所有初始化后,代码的主要部分通过位置管理器
didUpdateLocations
执行。 *对于每次使用的核心数据,我都会生成新的NSManagedObjectConext,如下所示:

FOUNDATION_EXPORT NSManagedObjectContext *generateManagedObjectContext()
{
    NSManagedObjectContext *context = [[NSManagedObjectContext alloc] init];
    context.persistentStoreCoordinator = appDelegate.persistentStoreCoordinator;
    return context;
}

创建表后删除它

Aha!这就是我的问题,我把初始化变量的函数移到了顶部,现在它开始工作了。
FOUNDATION_EXPORT NSManagedObjectContext *generateManagedObjectContext()
{
    NSManagedObjectContext *context = [[NSManagedObjectContext alloc] init];
    context.persistentStoreCoordinator = appDelegate.persistentStoreCoordinator;
    return context;
}
[db deleteTrapsTable];
[dbat deleteTrapsTable];