重新启动应用后重新显示已删除的NSData

时间:2011-08-18 23:00:03

标签: iphone objective-c nsdata

在我的应用中,我在设置菜单中有一个“全部删除”按钮,删除所有存储的用户数据。使用以下代码:

NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Event" inManagedObjectContext:managedObjectContext];
[fetchRequest setEntity:entity];

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

for (NSManagedObject *managedObject in items) {
    [managedObjectContext deleteObject:managedObject];
}

这似乎运作良好,所有数据似乎都从应用程序中消失了。也就是说,直到应用程序关闭并重新启动...

从背景状态打开应用程序不会执行此操作,但是当应用程序通过多任务切换器强行退出时,重新启动应用程序时会重新显示所有“已删除”数据。

-

删除后,所有数据实际上似乎都消失了,搜索任何数据等都不会返回任何结果。我在删除数据的方式上做错了什么?非常感谢任何帮助!

1 个答案:

答案 0 :(得分:8)

不要忘记在再次打开之前保存上下文,否则所有更改都将保持未保存状态。