2011-02-05 2 views
0

J'ai une propriété retain, qui est un NSArray de contrôleurs enfant View. Je veux modifier le setter de cette propriété de sorte que lorsque les contrôleurs de vue sont définis, je définis une propriété sur le contrôleur de vue contenant une référence à self. De la même manière, lorsque vous ajoutez un contrôleur de vue à un contrôleur de barre d'onglets, la propriété tabBarController des contrôleurs de vue est définie.extension d'une propriété de retenue

Dois-je créer un setter personnalisé (plutôt que le synthétisé) ou devrait/je utiliser l'observation des valeurs clés dont je pense avoir entendu parler.

Répondre

3

Bien que vous puissiez le faire de toute façon, mon opinion personnelle serait d'utiliser un setter personnalisé - si ce n'est que parce que cela clarifierait pour un tiers exactement ce qui se passait dans le code. Utiliser votre propre setter est probablement plus lisible que de mettre en place un observateur de valeur-clé et d'avoir une méthode déclenchée lors d'un changement de propriété. De plus, d'un point de vue informatique, l'utilisation de KVO est plus onéreuse qu'un setter personnalisé. L'impact sur votre application peut être négligeable, mais cela vaut la peine d'être pris en compte.

+0

Quel est exactement le code @synthesize est un raccourci, les docs Apple donnent 3 versions différentes pour conserver, et je ne suis pas sûr de savoir lequel utiliser. –

+0

@synthesize génère automatiquement les méthodes getter/setter au moment de la compilation. – lxt

Questions connexes