[MagicalRecord saveWithBlock:^(NSManagedObjectContext *localContext) {
RPCoreData *manager = [RPCoreData sharedManager];
if (manager.IdsArray) {
NSPredicate *itemFilter = [NSPredicate
predicateWithFormat:@"NOT (id IN %@)", manager.IdsArray];
NSArray *itemArray = [ItemData MR_findAllWithPredicate:itemFilter];
for (ItemData *itemData in itemArray) {
NSPredicate *categoryFilter =
[NSPredicate predicateWithFormat:@"id == %@", itemData.category.id];
CategoryData *categoryDataInLocalContext =
[CategoryData MR_findFirstWithPredicate:categoryFilter inContext:localContext];
if (![categoryDataInLocalContext isKindOfClass:[NSNull class]]) {
[categoryDataInLocalContext removeRelationshipObject:itemData];
}
}
}
}
completion:^(BOOL success, NSError *error) {
NSLog(@"%i %@", success, error);
}];
NSlog打印出No,nil。
未删除CategoryData和ItemData之间的关系。 类别与ItemData具有一对多的关系
答案 0 :(得分:0)
您应该只需设置
即可删除关系for (ItemData *itemData in itemArray) {
itemData.categoryData = nil
}
无需获取CategoryData。如果从itemData端删除关系,它也会从CategoryData端删除。
确保您的数据模型中的Delete rule
设置为Nullify
。还要检查您是否处于正确的环境中。