Objective c RestKit和CoreData以及带谓词的fetchRequestBlock出现问题(删除孤立对象)
我对RestKit和fetchRequestBlock中用于删除孤立对象的谓词有问题。将调用fetchRequestBlock,但不会删除对象。 我有一个具有多对多关系的表“元数据”和表“产品”。我希望RestKit删除元数据为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
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匹配的获取的本地对象和在本地数据库中找到的孤立对象。它们是什么?是否所有这些对象都保存到永久存储?