sto ottenendo il seguente errore nel mio app:Core Data: affermazione è ancora attivo
CoreData: error: Serious application error. Exception was caught during Core Data change processing. This is usually a bug within an observer of NSManagedObjectContextObjectsDidChangeNotification. statement is still active with userInfo (null)
Tutto ciò che posso trovare sembra indicare il I può essere avendo problemi multi-threading con l'oggetto dei miei dati di base gestito contesto, ma non riesco a trovare da nessuna parte nella mia app dove questo sarebbe il caso. Sto accedendo e gestendo un contesto dell'oggetto gestito su un thread in background. Il contesto è solo il recupero e la manipolazione di oggetti su quel thread in background. Quando rilevo salvataggi in quel contesto tramite NSManagedObjectContextObjectsDidSaveNotification, sto unendo le modifiche in un contesto diverso che accedo solo al mio thread principale. Quando effettuo la chiamata per unire le modifiche, viene generato l'errore. È molto raro che ciò si verifichi, anche con gli stessi set di dati.
Ho letto da qualche parte che è possibile "abilitare asserzioni multi-thread" utilizzando "-com.apple.CoreData.ThreadingDebug 3", ma non sono riuscito a farlo funzionare. Qualcuno sa se questo è possibile? Speravo che questo potesse attivare alcune asserzioni che mi avrebbero aiutato a trovare dove sto giocando con il contesto sul thread sbagliato o qualcosa del genere.
Eventuali altri indizi su cosa potrebbe accadere o su come rintracciare questo tipo di problema?
la risposta è stata d'aiuto? –
L'hai letto in [TN2124: Mac OS X Debugging Magic] (https://developer.apple.com/library/ios/#technotes/tn2004/tn2124.html#SECCOREDATA). Il bit chiave è, "Questa funzionalità richiede la variante di debug del framework." Se avessi questa variante, potresti impostare la variabile di ambiente 'DYLD_IMAGE_SUFFIX = _debug' e caricherà' CoreData_debug' piuttosto che 'CoreData' per il framework. Sfortunatamente, queste varianti sembrano esistere solo per OS X 10.5.x. :( –