Ios 从父NSManagedObjectContext获取核心数据失败

Ios 从父NSManagedObjectContext获取核心数据失败,ios,core-data,nsmanagedobjectcontext,Ios,Core Data,Nsmanagedobjectcontext,我使用父/子NSManagedObjectContext结构在单独的线程中执行一些核心数据操作。操作及其代码的顺序如下: 1)删除核心数据中的所有条目(使用父/子结构) 2)向核心数据插入新条目(使用父/子结构) 一切的顺序如上所述。现在一切似乎都很好,主线程在第三步之前的任何时候都没有阻塞。当我试图从核心数据中提取项目时,我什么也得不到。请注意,这是我第一次使用子/父结构,因此我不确定我是否完全正确。您正在获取一个Date属性,但插入新值的代码没有设置该属性?这只是伪代码,我已经处理过了。问题

我使用父/子
NSManagedObjectContext
结构在单独的线程中执行一些核心数据操作。操作及其代码的顺序如下:

1)删除核心数据中的所有条目(使用父/子结构)

2)向核心数据插入新条目(使用父/子结构)


一切的顺序如上所述。现在一切似乎都很好,主线程在第三步之前的任何时候都没有阻塞。当我试图从核心数据中提取项目时,我什么也得不到。请注意,这是我第一次使用子/父结构,因此我不确定我是否完全正确。

您正在获取一个
Date
属性,但插入新值的代码没有设置该属性?这只是伪代码,我已经处理过了。问题还在于其他方面。您确定要在保存核心数据后获取数据吗?只需通过注释“fetchRequest.resultType=NSDictionaryResultType”进行尝试即可;您获取的是
Date
属性,但插入新值的代码没有设置该属性?这只是伪代码,我已经处理过了。问题在于其他方面。您确定要在保存核心数据后尝试获取数据吗?请通过注释“fetchRequest.resultType=NSDictionaryResultType;”进行尝试
NSManagedObjectContext *context = [self managedObjectContext];
NSManagedObjectContext *bgContext = [[NSManagedObjectContext alloc]initWithConcurrencyType:NSPrivateQueueConcurrencyType];
bgContext.parentContext = context;

NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription entityForName:entityDescription inManagedObjectContext:context];
[fetchRequest setEntity:entity];

[bgContext performBlockAndWait:^{

    NSError *error;
    NSArray *items = [bgContext executeFetchRequest:fetchRequest error:&error];

    for (NSManagedObject *managedObject in items) {
        [bgContext deleteObject:managedObject];
        [bgContext save:nil];
    }

    NSLog(@"%@ object deleted",entityDescription);

}];

[context performBlockAndWait:^{
    [context save:nil];
}];
 NSManagedObjectContext *context = [self managedObjectContext];
    NSManagedObjectContext *bgContext = [[NSManagedObjectContext alloc]initWithConcurrencyType:NSPrivateQueueConcurrencyType];
    bgContext.parentContext = context;

    [bgContext performBlockAndWait:^{
        for (int i = 0; i<quantityCol.count; i++)
        {
            NSManagedObject *Sales = [NSEntityDescription insertNewObjectForEntityForName:@"Transactions" inManagedObjectContext:bgContext];

            NSString *product = [productTitleCol objectAtIndex:i];
            NSString *city = [cityTitleCol objectAtIndex:i];
            NSString *customer = [customerTitleCol objectAtIndex:i];

            [Sales setValue:product forKey:@"product"];
            [Sales setValue:city forKey:@"city"];
            [Sales setValue:customer forKey:@"customer"];

            NSError *err;
            [bgContext save:&err];
            if (err) {
                NSLog(@"%@",err);
            }
            [self.managedObjectContext performBlock:^{
                [self.managedObjectContext  save:nil];
            }];
        }
    }];
NSFetchRequest *fetchRequest = [NSFetchRequest fetchRequestWithEntityName:@"Transactions"];
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Transactions" inManagedObjectContext:self.managedObjectContext];

fetchRequest.resultType = NSDictionaryResultType;
fetchRequest.propertiesToFetch = [NSArray arrayWithObject:[[entity propertiesByName] objectForKey:@"Date"]];
fetchRequest.sortDescriptors = [NSArray arrayWithObject:[NSSortDescriptor sortDescriptorWithKey:@"Date" ascending:NO]];
fetchRequest.returnsDistinctResults = YES;
distinctDate = [self.managedObjectContext executeFetchRequest:fetchRequest error:nil];