0

我在我的应用程序中使用 Magical Record。

我有关系...

Competition <-->> League

即 ACompetition可以有很多Leagues. ALeague只能有一个Competition

删除规则Competition to League设置为Cascade。反向删除规则设置为Nullify

我期望发生的是,如果我删除 a ,Competition那么Leagues属于它的所有内容也会被删除。(我在以前的应用程序中成功使用过这个)。

我正在通过做测试...

  1. 下载并插入所有比赛和联赛。
  2. 记录所有具有比赛名称的联赛。

    NSArray *leagues = [League findAll];
    for (League *league in *leagues)
    {
        NSLog(@"%@ - %@", league.name, league.competition.name);
    }
    
    e.g. Man UTD - Premier League
    
  3. 运行以下代码...

    [Competition truncateAll];
    
  4. 记录所有具有比赛名称的联赛。

    e.g. Man UTD - (null)
    

我期待这会删除Leagues以及Competitions

我的假设是否正确?为什么不这样做?

4

2 回答 2

3

保存processPendingChanges调用托管对象上下文时应用关系删除规则。

从实现中可以看出,MagicalRecord 方法MR_truncateAll调用 deleteObject实体的所有对象,但不保存上下文。

于 2013-07-25T09:36:58.623 回答
0

我同意马丁·R。

只需在后面添加以下几行

[Competition truncateAll];

[[NSManagedObjectContext MR_defaultContext] MR_saveToPersistentStoreAndWait];

你会很高兴去的!:)

于 2016-08-20T18:44:32.133 回答