Ios 神奇记录级联删除(TRUNCEALL)不删除
我正在我的应用程序中使用魔法记录 我有一段感情Ios 神奇记录级联删除(TRUNCEALL)不删除,ios,objective-c,core-data,magicalrecord,Ios,Objective C,Core Data,Magicalrecord,我正在我的应用程序中使用魔法记录 我有一段感情 Competition <-->> League 运行以下代码 [Competition truncateAll]; 用比赛名称记录所有联赛 NSArray *leagues = [League findAll]; for (League *league in *leagues) { NSLog(@"%@ - %@", league.name, league.competition.name); } e.g. M
Competition <-->> League
[Competition truncateAll];
NSArray *leagues = [League findAll];
for (League *league in *leagues)
{
NSLog(@"%@ - %@", league.name, league.competition.name);
}
e.g. Man UTD - Premier League
e.g. Man UTD - (null)
联赛
以及比赛
我的假设正确吗?为什么不这样做?当托管对象 保存上下文,或调用
processPendingChanges
如中所示,MagicalRecord方法调用
deleteObject
在一个实体的所有对象上,但不保存上下文。当托管对象
保存上下文,或调用processPendingChanges
如中所示,MagicalRecord方法调用
deleteObject
在实体的所有对象上,但不保存上下文。我同意Martin R
只需在后面添加以下行
[Competition truncateAll];
[[NSManagedObjectContext MR_defaultContext] MR_saveToPersistentStoreAndWait];
你就可以走了!:) 我同意马丁·R
只需在后面添加以下行
[Competition truncateAll];
[[NSManagedObjectContext MR_defaultContext] MR_saveToPersistentStoreAndWait];
你就可以走了!:) 你如何“用比赛名称记录所有联赛”?您是再次获取它们还是使用现有的指向对象的指针请注意,只有当您
保存上下文或调用processPendingChanges
。编辑以显示日志代码时,才会应用删除规则。我以为是我干的?我太傻了。我将截断包在一个保存块中,它成功了。谢谢:)你如何“用比赛名称记录所有联赛”?您是再次获取它们还是使用现有的指向对象的指针请注意,只有当您保存上下文或调用processPendingChanges
。编辑以显示日志代码时,才会应用删除规则。我以为是我干的?我太傻了。我将截断包在一个保存块中,它成功了。谢谢:)它也会删除数据库吗?@user1007522:不会,它会删除给定实体的所有对象,例如[Car truncateAll]代码>从数据库中删除所有汽车对象。可能还有其他实体不受影响。SQLite文件本身没有被删除。@MartinR,好吧,我怎样才能删除整个数据库内容?@gaussblurinc你找到删除整个数据库的解决方案了吗?[magicalrecord cleanup]
有效吗?@ZigiiWong否,[magicalrecord cleanup]
清除带有协调器、存储和上下文的魔法记录堆栈。可以通过擦除所有表中的所有内容或擦除数据库文件(如果使用sqlite)来清理数据库。看看a它是否也删除了数据库?@user1007522:否,它删除了给定实体的所有对象,例如[Car truncateAll]代码>从数据库中删除所有汽车对象。可能还有其他实体不受影响。SQLite文件本身没有被删除。@MartinR,好吧,我怎样才能删除整个数据库内容?@gaussblurinc你找到删除整个数据库的解决方案了吗?[magicalrecord cleanup]
有效吗?@ZigiiWong否,[magicalrecord cleanup]
清除带有协调器、存储和上下文的魔法记录堆栈。可以通过擦除所有表中的所有内容或擦除数据库文件(如果使用sqlite)来清理数据库。看一看