相关疑难解决方法(0)

核心数据:删除实体类型的所有对象,即清除表格

之前已经提出过这个问题,但没有描述的解决方案足以满足我的应用需求.

在我们设置的通信协议中,服务器在每次执行同步时发送一组新的客户.早些时候,我们一直作为一个plist存储.现在想要使用Core Data.

可能有数千个条目.单独删除每一个需要很长时间.有没有办法删除Core Data中特定表中的所有行?

delete from customer
Run Code Online (Sandbox Code Playgroud)

sqlite中的这个调用立即发生.在Core1中单独浏览每一个可能需要30秒才能在iPad1上完成.

关闭Core Data是合理的,即删除持久性存储和所有托管对象上下文,然后放入sqlite并对表执行delete命令?在此过程中没有其他活动正在进行,因此我不需要访问数据库的其他部分.

sqlite core-data ios

10
推荐指数
2
解决办法
2万
查看次数

核心数据子环境不预取关系

-com.apple.CoreData.SQLDebug 1在我的应用程序方案中激活了Core Data调试器,并获得了一个名为Category的实体的以下结果,其中包含一个名为Image的关系实体:

主要上下文中的FetchRequest:

NSFetchRequest *fr = [[NSFetchRequest alloc] initWithEntityName:@"Category"];
fr.relationshipKeyPathsForPrefetching = @[@"image"];

NSArray *results = [self.mainContext executeFetchRequest:fr error:nil];

for (Category *category in results) {

    NSLog(@"%@", category.image.width);
}
Run Code Online (Sandbox Code Playgroud)

控制台日志显示未满足任何错误 - 自映像关系设置为预取以来的预期行为.

对子上下文的相同请求:

NSManagedObjectContext *privateMOC = [[NSManagedObjectContext alloc] initWithConcurrencyType:NSPrivateQueueConcurrencyType];
[privateMOC setParentContext:self.mainContext];

[privateMOC performBlock:^{

        NSFetchRequest *fr = [[NSFetchRequest alloc] initWithEntityName:@"Category"];
        fr.relationshipKeyPathsForPrefetching = @[@"image"];

        NSArray *results = [privateMOC executeFetchRequest:fr error:nil];

        for (Category *category in results) {

            NSLog(@"%@",category.image.width);
        }
    }];
Run Code Online (Sandbox Code Playgroud)

在这种情况下,控制台显示Core Data为每个图像(其中4个)执行故障.这是一个错误,预期的行为还是我错过了什么?

core-data ios

10
推荐指数
1
解决办法
789
查看次数

标签 统计

core-data ×2

ios ×2

sqlite ×1