2013-08-01 18 views
5

Ho una relazione uno-a-molti Feedback alle domande nel Feedback. La regola di cancellazione è impostata su Nullify in Question e su Cascade in Feedback (in modo che quando Feedback viene cancellato cancelli tutte le sue domande e quando la domanda viene cancellata è puntato su null in feedback.questions).Magical Record che elimina il problema dell'entità

Il problema è quando elimino la domanda (solo una domanda da molti che esiste nel feedback), quindi non posso accedere al feedback! Anche se la voce reale è in realtà esiste nel DB (controllato con MesaSQLite) Il codice si presenta come:

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 è nulla qui. PERCHÉ? Che cosa sto facendo di sbagliato?

+0

Hai salvato questa eliminazione in seguito? –

+0

puoi pubblicare screenshot della configurazione dei tuoi dati principali da xcode? in particolare gli attributi delle relazioni. – Jon

+0

Al momento dell'eliminazione, è difficile codificarmi per restituire sempre sì. – casademora

risposta

12

Hm, provare forse la seguente riga dopo la vostra "// successo è 1 qui" riga di commento:

[[NSManagedObjectContext defaultContext] saveToPersistentStoreAndWait]; 

o, se non si ha la "scorciatoia-mode" enabled:

[[NSManagedObjectContext MR_defaultContext] MR_saveToPersistentStoreAndWait]; 
+0

Ehi, questo ha fatto il trucco! il tuo secondo metodo mi ha aiutato ad accedere al feedback! Potresti spiegarmi la cosa, dovrei salvare un contesto ogni volta che elimino qualche entità? Ho pensato che il metodo 'MR_deleteEntity' ha fatto tutto internamente – Stas

+0

Ah, credimi ... non ho una spiegazione per questo! :) Ero in una situazione simile e ho appena sperimentato con wat MR aveva da offrire. Dopo aver esaminato le interfacce di MR, mi sono imbattuto in alcuni di quei metodi "saveTo ..." e ho iniziato a usarli per mantenere le mie modifiche. Penso che questa sia interamente una questione di dati di base e devi capire come funzionano i dati di base per sapere se hai bisogno di perseverare in modo esplicito o meno. MR è un framework davvero bello, ma non ti solleva dal sottovalutare i dati di base - e ho ancora problemi a capire i dati fondamentali in alcune aree! –

+0

Ok, grazie, la tua risposta è accettata) – Stas

Problemi correlati