NSUnknownKeyException para chave existente e não digitada incorretamente
-
11-12-2019 - |
Pergunta
Estou recebendo a seguinte saída:
*** 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".'
O código executado antes de obter a saída é o seguinte:
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];
Para mim, isso parece um erro de digitação ou algo assim, já que todos os outros atributos da entidade não causam nenhum problema.Mas verifiquei umas doze vezes e não consigo encontrar nenhum erro de digitação ou algo assim.Tudo parece certo.E há uma semana tudo funcionou bem – não mudei nada aqui.
Também existem alguns outros lugares onde faço coisas com o managedObject
e da mesma forma todos os outros atributos funcionam bem, exceto este.Tentei excluí-lo do armazenamento Core Data e digitá-lo novamente, mas isso não resolveu o problema.
Existem outros motivos para esse erro?
Solução
O problema é bastante estranho (às vezes funciona, às vezes não), então sugiro alterar o nome do atributo (por exemplo, booleanStatus
) e verifique se o problema ainda persiste ou não.
Como você alterou o modelo, você precisa remover o aplicativo e criá-lo.Alternativamente, você pode realizar uma migração automática no Core Data.Como preferir.
Espero que ajude.