NsunkNownKeyException per la chiave esistente e non mista
-
11-12-2019 - |
Domanda
Sto ottenendo la seguente uscita:
*** Terminating app due to uncaught exception 'NSUnknownKeyException', reason:
'[<NSManagedObject 0x21016610> setValue:forUndefinedKey:]: the entity MyEntity is
not key value coding-compliant for the key "aBooleanKey".'
.
Il codice che viene eseguito prima di ottenere l'output è il seguente:
self.name = [managedObject valueForKey:@"name"];
self.language = [managedObject valueForKey:@"language"];
self.ownerID = [managedObject valueForKey:@"ownerID"];
// the following line is the scope of the problem:
self.aBooleanKey = [[managedObject valueForKey:@"aBooleanKey"] boolValue];
.
Per me questo sembra una mis falsità o qualcosa del genere, poiché tutti gli altri attributi di entità non causano alcun problema.Ma ho controllato come dodici volte e non riesco a trovare alcun problema o giù di lì.Sembra tutto giusto.E una settimana fa tutto funzionava bene - non ho cambiato nulla qui.
Inoltre ci sono alcuni altri luoghi in cui faccio le cose con il managedObject
e allo stesso modo tutti gli altri attributi funzionano bene tranne questo.Ho provato ad eliminarlo nel magazzino di dati core e restandolo, ma non ha risolto il problema.
Ci sono altre ragioni per questo errore?
Soluzione
Il problema è piuttosto strano (a volte funziona, a volte), quindi ti suggerirei di cambiare il nome dell'attributo (ad esempio booleanStatus
) e verificare se il problema persiste ancora o meno.
Dato che hai cambiato il modello è necessario rimuovere l'app e ricreazione.In alternativa è possibile eseguire una migrazione automatica sui dati chiave.Come preferisci.
Spero che aiuti.