2009-07-16 8 views
2

Supposons que vous ayez une plume de fenêtre appartenant à un NSWindowController qui charge la plume.Dépendance circulaire NSWindowController provoquée par les liaisons?

NSWindowController possède une interface IBOutlet liée (via Interface Builder) à un contrôle d'interface utilisateur sur la fenêtre.

Est-il vrai que vous ne pouvez pas éliminer le contrôleur de fenêtre en le libérant parce que la liaison provoque une dépendance circulaire incassable entre le contrôleur de fenêtre et le contrôle?

Connaissez-vous une situation courante pouvant conduire à des dépendances circulaires similaires?

Répondre

2

Dans des situations comme celle-ci, écrire un exemple d'application ciblée et observer l'exécution dans le débogueur est un excellent moyen de comprendre comment les choses fonctionnent. La simple liaison par l'intermédiaire du propriétaire du fichier ne devrait pas causer de cycles de rétention (10.4 et plus). NSWindowController (et NSViewController) prennent des mesures pour éviter ce problème.

Si vous rencontrez une situation où vos liaisons provoquent des cycles de rétention, il existe des stratégies pour les éviter. (Plus de détails pour votre configuration spécifique est probablement nécessaire pour des conseils spécifiques.)

Questions connexes