2013-08-01 4 views
5

Ich habe eine Eins-zu-viele Beziehung Form Feedback zu Fragen im Feedback. Die Löschregel wird auf "Nulfly in Question" und "Cascade in Feedback" gesetzt (damit beim Löschen des Feedbacks alle Fragen gelöscht werden und beim Löschen der Frage der Zeiger in feedback.questions auf null gesetzt wird).Magical Record löschen Entität Problem

Das Problem ist, wenn ich Frage löschen (um nur eine Frage von vielen, die in Feedback vorhanden ist), dann kann ich kein Feedback zugreifen! Obwohl der eigentliche Eintrag wirklich in DB vorhanden sind (markiert mit MesaSQLite) Der Code sieht so aus:

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]; 

Feedback null ist hier. WARUM? Was mache ich falsch?

+0

Haben Sie diese Löschung später gespeichert? –

+0

können Sie Screenshots Ihrer Kerndatenkonfiguration von xcode hochladen? speziell die Attribute der Beziehungen. – Jon

+0

Beim Löschen ist es in mir hart codiert, immer ja zurück zu geben. – casademora

Antwort

12

Hm, vielleicht versuchen Sie die folgende Zeile nach dem „// Erfolg ist 1 hier“ Kommentarzeile:

[[NSManagedObjectContext defaultContext] saveToPersistentStoreAndWait]; 

oder, wenn Sie nicht den „Kurzschrift-Modus“ aktiviert haben:

[[NSManagedObjectContext MR_defaultContext] MR_saveToPersistentStoreAndWait]; 
+0

Hey, das hat den Trick gemacht! Ihre zweite Methode hat mir geholfen, Feedback zu erhalten! Kannst du mir das bitte erklären? Soll ich jedes Mal, wenn ich eine Entität lösche, einen Kontext speichern? Ich dachte, dass 'MR_deleteEntity' Methode das ganze Zeug intern machte – Stas

+0

Ah, glaub mir ... ich habe keine richtige Erklärung dafür! :) Ich war in einer ähnlichen Situation und experimentierte nur mit dem was MR zu bieten hatte. Nachdem ich die Schnittstellen von MR angeschaut habe, bin ich auf einige dieser "saveTo ..." - Methoden gestoßen und habe begonnen, sie zu verwenden, um meine Änderungen zu erhalten. Ich denke, das ist eine Kerndatendatei, und Sie müssen verstehen, wie Kerndaten funktionieren, um zu wissen, ob Sie etwas explizit beibehalten müssen oder nicht. MR ist ein wirklich nettes Framework, aber es entbindet Sie nicht von grundlegenden Kerndaten - und ich habe immer noch Probleme, Kerndaten in einigen Bereichen zu verstehen! –

+0

Ok, danke, deine Antwort wird akzeptiert) – Stas

Verwandte Themen