【发布时间】:2015-10-25 09:49:57
【问题描述】:
我正在使用这种方法删除 CoreData 对象:
NSManagedObjectContext *theContext = [self managedObjectContext];
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] initWithEntityName:nameEntity];
[fetchRequest setIncludesPropertyValues:NO]; //only fetch the managedObjectID
[fetchRequest setPredicate:predicate];
NSError *error;
NSArray *fetchedObjects = [theContext executeFetchRequest:fetchRequest error:&error];
for (NSManagedObject *object in fetchedObjects)
{
[theContext deleteObject:object];
}
error = nil;
if(![theContext save:&error]){
NSLog(@"Couldn't save: %@", error);
}
我不明白的是,例如我下载数据并存储它,在设置中我可以看到我的应用程序使用了 5MB 的磁盘空间。 一旦我使用这种方法删除数据,它就会说我的应用程序使用了 6.3MB 的数据。 这完全没有任何意义。我究竟做错了什么?为什么数据没有被正确删除?
【问题讨论】:
-
数据删除后还能访问吗?因为如果不能,则数据被正确删除。我不确定是否有任何文档承诺在删除操作后立即释放磁盘空间。 (如果我错了,请随时纠正我。)
标签: ios objective-c core-data