Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/114.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 删除魔法记录导入中的孤立对象_Ios_Core Data_Magicalrecord - Fatal编程技术网

Ios 删除魔法记录导入中的孤立对象

Ios 删除魔法记录导入中的孤立对象,ios,core-data,magicalrecord,Ios,Core Data,Magicalrecord,magicalrecord中是否内置了处理孤儿的功能?例如,如果我加载以下JSON数据 [ { "_id" : "b1", "name" : "brandA"}, { "_id" : "b2", "name" : "brandB"}, { "_id" : "b3", "name" : "brandC"} ] 然后更新数据并删除brandC [ { "_id" : "b1", "name" : "brandA"}, { "_id" : "b2",

magicalrecord中是否内置了处理孤儿的功能?例如,如果我加载以下JSON数据

[
  { "_id"   : "b1", "name"  : "brandA"},
  { "_id"   : "b2", "name"  : "brandB"},
  { "_id"   : "b3", "name"  : "brandC"}
]
然后更新数据并删除
brandC

[
  { "_id"   : "b1", "name"  : "brandA"},
  { "_id"   : "b2", "name"  : "brandB"}
]
更重要的是,如何删除孤立的嵌套对象,例如下面的
productB

[
  { "_id"   : "b1", 
    "name"  : "brandA"
    "products" : [
        {"_id" : "p1", "name" : "productA" },
        {"_id" : "p2", "name" : "productB" }
     ]
  },
  { "_id"   : "b2", 
    "name"  : "brandB"
    "products" : [
        {"_id" : "p3", "name" : "productC" },
        {"_id" : "p4", "name" : "productD" }
     ]
  }
]

我知道了,但如果有人想提出更好的解决方案,请这样做

正在删除加载时“级别0”上的孤立项 删除托管对象中“级别1”上的嵌套孤立项
willImport
中的品牌实体上,我们正在搜索与新数据不匹配的产品ID并将其删除。

我只是使用它。你的解决方案很有效。谢谢分享。这非常重要,因为我认为这是唯一一个做得很好的代码示例。再次谢谢你,如果可以的话,我会给你100+的。非常简洁的解决方案,谢谢分享。
NSArray *newdata   =  [];//AN ARRAY OF NEW DATA
NSArray *idList         = [newdata valueForKey:@"_id"];
NSPredicate *predicate  = [NSPredicate predicateWithFormat:@"NOT(_id IN %@)", idList];
[MRBrand MR_deleteAllMatchingPredicate:predicate];
[[NSManagedObjectContext MR_defaultContext] MR_saveToPersistentStoreAndWait];
-(void)willImport:(id)data{
    NSArray *idList         = [data[@"products"] valueForKey:@"_id"];
    NSPredicate *predicate  = [NSPredicate predicateWithFormat:@"NOT(pid IN %@) AND brand.bid == %@", idList, self.bid];
    [Product MR_deleteAllMatchingPredicate:predicate inContext:self.managedObjectContext];
}