2013-08-01 81 views
5

我有反馈中的问题的一对多关系表单反馈。删除规则在问题中设置为Nullify,在反馈中设置为级联(以便在删除反馈时删除其所有问题,并在问题被删除时将指针设置为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]; 

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

+0

你以后保存了这个删除吗? –

+0

你可以发布xcode的核心数据配置截图吗?特别是关系的属性。 – Jon

+0

在删除时,我的硬编码总是返回yes。 – casademora

回答

12

嗯,也许试试下面的行之后的“//成功是1这里”注释行:

[[NSManagedObjectContext defaultContext] saveToPersistentStoreAndWait]; 

,或者,如果你没有“的简写模式”已启用:

[[NSManagedObjectContext MR_defaultContext] MR_saveToPersistentStoreAndWait]; 
+0

嘿,这个伎俩!你的第二种方法帮助我获得反馈!你能否给我解释一下 - 每次删除某个实体时,我应该保存一个上下文吗?我以为'MR_deleteEntity'方法在内部完成了所有的东西 – Stas

+0

啊,相信我......我没有一个合适的解释! :)我处于类似的情况,只是尝试用笏MR提供的服务。看了MR的接口之后,我偶然发现了一些“saveTo ...”方法,并开始使用它们来坚持我的更改。我认为这完全是一个核心数据,你必须了解核心数据是如何工作的,以便知道你是否需要明确地坚持某些事情。 MR是一个非常好的框架,但它并不能使您无需理解核心数据 - 而且在某些领域,我仍然存在着核心数据问题的问题! –

+0

好的,谢谢,你的答案被接受) – Stas