我在我的应用程序中使用魔法记录。
我有一段感情......
Competition <-->> League
即。 Competition
可以包含多个Leagues
。 League
只能有一个Competition
。
Competition to League
的删除规则设为Cascade
。反删除规则设置为Nullify
。
我期望发生的是,如果我删除Competition
,那么同时删除属于它的所有Leagues
。 (我在以前的应用程序中成功使用了这个。)
我正在测试......
使用比赛名称记录所有联赛。
NSArray *leagues = [League findAll];
for (League *league in *leagues)
{
NSLog(@"%@ - %@", league.name, league.competition.name);
}
e.g. Man UTD - Premier League
运行以下代码......
[Competition truncateAll];
使用比赛名称记录所有联赛。
e.g. Man UTD - (null)
我希望这会删除Leagues
以及Competitions
?
我的假设是否正确应该做什么?为什么不这样做?
答案 0 :(得分:3)
管理对象时应用关系删除规则
上下文已保存,或者processPendingChanges
被调用。
从implementation可以看出,MagicalRecord方法MR_truncateAll
调用
deleteObject
在实体的所有对象上,但不保存上下文。
答案 1 :(得分:0)
我同意Martin R.
在
之后添加以下行[Competition truncateAll];
[[NSManagedObjectContext MR_defaultContext] MR_saveToPersistentStoreAndWait];
你会好起来的! :)