Objective c RestKit和CoreData以及带谓词的fetchRequestBlock出现问题(删除孤立对象)

Objective c RestKit和CoreData以及带谓词的fetchRequestBlock出现问题(删除孤立对象),objective-c,core-data,restkit,Objective C,Core Data,Restkit,我对RestKit和fetchRequestBlock中用于删除孤立对象的谓词有问题。将调用fetchRequestBlock,但不会删除对象。 我有一个具有多对多关系的表“元数据”和表“产品”。我希望RestKit删除元数据为metaData.qId==1的所有产品,并将其放在fetchRequestBlock的谓词中。如果我使用块中的谓词手动获取数据,我会得到应该删除的产品的结果。但是RestKit不会删除这些条目。 这是我的密码: [objectManager addFetchReques

我对RestKit和fetchRequestBlock中用于删除孤立对象的谓词有问题。将调用fetchRequestBlock,但不会删除对象。 我有一个具有多对多关系的表“元数据”和表“产品”。我希望RestKit删除元数据为
metaData.qId==1的所有产品,并将其放在fetchRequestBlock的谓词中。如果我使用块中的谓词手动获取数据,我会得到应该删除的产品的结果。但是RestKit不会删除这些条目。
这是我的密码:

[objectManager addFetchRequestBlock:^NSFetchRequest *(NSURL *URL)
 {
     RKPathMatcher *pathMatcher = [RKPathMatcher pathMatcherWithPattern:@"/api/v1/promotions"];
     NSDictionary *argsDict = nil;
     BOOL match = [pathMatcher matchesPath:[URL relativePath]
                      tokenizeQueryStrings:NO
                           parsedArguments:&argsDict];
     if (match)
     {
         NSFetchRequest *fetchRequest = [NSFetchRequest fetchRequestWithEntityName:@"Product"];
         fetchRequest.predicate = [NSPredicate predicateWithFormat:@"ANY metaData.qId == 1"];
         fetchRequest.sortDescriptors = @[ [NSSortDescriptor sortDescriptorWithKey:@"productId" ascending:YES] ];             
         return fetchRequest;
     }         
     return nil;
 }];
核心数据中关系中的删除规则设置为“Nullify”。fetchRequestBlocks谓词中的多对多关系是否存在问题?如果我将谓词设置为
anymetadata=nil
RestKit,则会成功删除相应的条目

有什么想法吗?如果您需要更多信息,请告诉我。谢谢你的帮助

更新:

以下是产品表中的数据:

product table before request (3 entries):
productId = 113362
productId = 136565
productId = 138688

data received by manually executing fetchRequest in the fetchRequestBlock:
productId = 113362
productId = 136565
productId = 138688

new data received from server:
productId = 113362
productId = 112610
productId = 105622

product table after getting data from the server (5 entries):
productId = 113362
productId = 136565
productId = 138688
productId = 112610
productId = 105622

您可以说,具有相同谓词的获取将返回结果,因此谓词应该是正确的。您从服务器上得到了什么结果?RestKit不会删除它刚刚收到的任何内容。您是否调试了
匹配
是否为
?谢谢您的回复,Wain。是,
match
Yes
,我在这里手动执行fetchRequest。我编辑了我的问题,您可以看到从服务器获取数据之前、期间和之后的数据。RestKit应删除至少两个条目(136565和138688)。打开跟踪日志以进行映射,并搜索与URL匹配的
获取的本地对象和在本地数据库中找到的
孤立对象。它们是什么?是否所有这些对象都保存到永久存储?