J'ai une erreur très étrange qui se produit dans une application qui fonctionne depuis longtemps.
Je ne peux plus créer une de mes entités dans mon modèle CoreData.
Lorsque je crée une entité particulière dans mon modèle et que j'essaie de l'imprimer en utilisant NSLog( @ "%@", obj ), j'obtiens ce message étrange :
2011-11-08 13:03:05.936 iLearnFast [31541:15503] - [__NSCFNumber objectID] : sélecteur non reconnu envoyé à l'instance 0xa069e20
Lorsque je boucle sur les attributs / relations de cet objet et que je les imprime, une relation particulière renvoie une valeur étrange de [obj valueForKey :]. La valeur qu'elle renvoie est le même pointeur/objet que celui mentionné dans le message d'erreur ci-dessus.
Je pensais que j'avais peut-être corrompu la mémoire quelque part, mais j'ai inséré le code pour créer l'entité au tout début de mon exécutable dès que les structures de données sont initialisées, et j'obtiens le même problème. Je suis extrêmement confiant que je n'ai pas fait d'erreur de mémoire à ce stade (et une erreur de mémoire serait plus aléatoire .... Je peux créer des milliers d'objets, et toujours la même entité a le même problème avec la même relation, et aucune autre entité n'a jamais de problème).
Après avoir circonscrit le problème à cette seule relation, j'ai découvert que je pouvais faire disparaître l'erreur en renommant la relation en n'importe quel autre nom. La relation s'appelle "file" depuis la création de mon application.
Je peux refaire fonctionner mon code en renommant la propriété, même si cela perturbe ma migration automatique vers la légèreté, mais je dois maintenant trouver comment effectuer une migration plus complexe.
Si quelqu'un a une idée de ce qui pourrait ne pas fonctionner, je l'apprécierais vraiment.
Je suis perplexe et j'ai vraiment l'impression qu'il s'agit d'un bug dans le SDK d'Apple.
J'utilise actuellement XCode 4.2 et j'ai essayé les deux SDK pour iOS5.0 et iOS4.3 et les deux avaient le même comportement.
Ron