– : no puede descifrar object de class

Tengo un error que no comprendo después de actualizar mi aplicación. Ya tengo una aplicación en la tienda de aplicaciones. Tengo algunos datos específicos de la aplicación archivados y almacenados en un file dentro del directory de soporte de aplicaciones. Estaba leyendo y almacenando los datos cada vez que la aplicación se inicia y se envía a segundo plano. Todo estaba bien hasta ahora. Ahora publiqué una actualización de la aplicación. Después de la actualización cuando lanzo la aplicación e bash desarchivar los datos, se bloquea con la exception a continuación.

-[NSKeyedUnarchiver decodeObjectForKey:]: cannot decode object of class (ProjectName.ProjectFile) for key (root); the class may be defined in source code or a library that is not linked. 

Si borro la aplicación e instalo la aplicación, todo funciona bien.

Tanto mi aplicación original como la actualización están escritas en Swift. No he cambiado el nombre del file también de la versión 1 a 2. ¿Alguien sabe lo que está sucediendo?

Encontré el motivo de lo anterior.

Básicamente, cambié el nombre del objective del proyecto de la versión 1 a la versión 2. Por lo tanto, intentaba decodificar ProjectName2.ProjectFile lugar de ProjectName.ProjectFile .

La forma posible de evitarlo es @objc(PFUserUtils) para la class cuando inicia la primera versión. Si cambia el nombre del objective como yo, use el NSKeyedUnarchiver.setClass(className forClassName:name) para establecer el nombre de la class en uno antiguo.