我试图在我的iOS应用中使用coreData编写注销功能。当用户注销时,应该删除所有内容,并且应该显示登录屏幕。然后,当新用户登录时,体验应该是全新的,就好像用户删除了应用程序并重新安装它一样。
我的方法是删除用户(只有一个),并在所有模型上放置级联关系,所以user has_one program
当我在用户上保存上下文时has_many days
,所有的子对象也应该被删除,对吧?
这是我的方法:
- (void)LogUserOut
{
[self.context deleteObject:self.currentUser];
NSError *saveError = nil;
[self.context save:&saveError];
NSString *appDomain = [[NSBundle mainBundle] bundleIdentifier];
[[NSUserDefaults standardUserDefaults] removePersistentDomainForName:appDomain];
}
问题是子对象没有被删除。我在这里错过了什么吗?
编辑:我刚刚使用childObject.isDeleted?
检查并返回false,因此级联选项绝对不起作用。
编辑2:
以下是coredata实体的屏幕截图: