【问题标题】:iOS Realm cascade deleteiOS Realm 级联删除
【发布时间】:2016-02-05 15:30:59
【问题描述】:

我的模型是: 第一个模型 - Job: idx, title, description

第二个模型 - Specialization: idx, title, RLMArray<Job> jobs

如果我想删除作业并且我想删除与作业相关的所有规范,我应该怎么做。提前谢谢你。 我的代码是:

[self.storage beginWriteTransaction];
RLMResults *specs = [MBSpecialization objectsInRealm:self.storage where:@"%@ IN jobs", job];
                for (MBSpecialization *spec in specs) {
                    [self.storage deleteObjects:spec];
                }
[self.storage deleteObject:job];
[self.storage commitWriteTransaction];

【问题讨论】:

    标签: ios objective-c realm


    【解决方案1】:

    如果您想删除所有包含被删除工作的专业化,即使它们还有其他工作:

    [self.storage beginWriteTransaction];
    [self.storage deleteObjects:[job linkingObjectsOfClass:MBSpecialization.className forProperty:@"jobs"]];
    [self.storage deleteObject:job];
    [self.storage commitWriteTransaction];
    

    或者,您可能只想清理所有在删除后不再有任何工作的专业:

    [self.storage beginWriteTransaction];
    [self.storage deleteObject:job];
    [self.storage deleteObjects:[MBSpecialization objectsInRealm:self.storage where:@"jobs.@count = 0"]];
    [self.storage commitWriteTransaction];
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-04-24
      • 2011-06-29
      • 2010-10-05
      • 2011-09-21
      • 2012-02-27
      • 2012-09-08
      • 2012-09-07
      相关资源
      最近更新 更多