7

我有一个从反馈到反馈中的问题的一对多关系。删除规则在 Question 中设置为 Nullify,在 Feedback 中设置为 Cascade(这样,在删除反馈时,它会删除所有问题,而在删除问题时,它的指针在 feedback.questions 中设置为空)。

问题是当我删除问题(反馈中存在的许多问题中的一个)时,我无法访问反馈!虽然实际条目确实存在于 DB 中(使用 MesaSQLite 检查)代码如下所示:

FeedbackQuestion * questionToDelete = [FeedbackQuestion findByQuestionId:[entryID integerValue]];
DLog(@"Deleting FeedbackQuestion with ID: %@", questionToDelete.questionID);
success = [questionToDelete MR_deleteEntity];
//success is 1 here
***
// Accessing the feedback which question was deleted
Feedback * feedback = [Feedback findByFeedbackId:feedbackId];

反馈在这里是空的。为什么?我究竟做错了什么?

4

1 回答 1

13

嗯,在“//success is 1 here”注释行之后尝试以下行:

[[NSManagedObjectContext defaultContext] saveToPersistentStoreAndWait];

或者,如果您没有启用“速记模式”:

[[NSManagedObjectContext MR_defaultContext] MR_saveToPersistentStoreAndWait];
于 2013-08-01T20:54:31.183 回答