J'ai un objet Obj-C "parent" contenant (dans une collection) un groupe d'objets dont les variables d'instance se pointent entre elles, éventuellement de manière circulaire (peur non, pas de rétention entre ces «frères et soeurs»). J'écris l'objet parent en XML, ce qui implique bien sûr (entre autres) d'écrire ses "enfants", sans ordre particulier, et en raison de la circularité possible, je remplace ces références entre les enfants par des identifiants uniques que chaque enfant a . Le problème est de lire ce XML en arrière ... comme je crée un "enfant", je tombe sur un ID, mais il n'y a aucune garantie que l'objet auquel il fait référence a été créé pour le moment. Puisque les références sont éventuellement circulaires, il n'y a même pas d'ordre dans lequel les lire qui résout ce problème.Lecture d'un pointeur XML sans être sûr que l'instance Obj-C correspondante existe
Que dois-je faire? Ma solution actuelle consiste à remplacer (dans les variables d'instance réelles) les références par des chaînes contenant les identifiants uniques. C'est méchant, cependant, parce que pour utiliser ces variables d'instance, au lieu de quelque chose comme [oneObject aSibling]
je dois maintenant faire quelque chose comme [theParent childWithID:[oneObject aSiblingID]]
. Je suppose que je pourrais créer une méthode aSibling
pour simplifier les choses, mais il semble qu'il y ait une façon plus propre que tout cela. Y a-t-il?