web-dev-qa-db-fra.com

Que sont le propriétaire du fichier et le premier répondant dans iOS - Xcode?

Que sont le propriétaire du fichier et le premier répondant dans iOS - Xcode?

88
Matrix

Le propriétaire du fichier est un objet runtime instancié qui possède le contenu de votre nib et ses sorties/actions lorsque la nib est chargée. Il peut s'agir d'une instance de n'importe quelle classe que vous aimez - jetez un œil à l'onglet identité de la palette d'outils.

Le propriétaire du fichier est le lien principal entre le code de votre application et le contenu du fichier nib.

Par exemple, considérez que vous avez une sous-classe UIViewController avec un IBOutlet pour un UILabel. Dans le générateur d'interface, le propriétaire du fichier sera défini sur la même classe que votre UIViewController. Lorsque votre nib est chargée au moment de l'exécution, les liaisons des prises et des actions définies dans votre nib sont liées à l'instance de votre contrôleur de vue, car votre contrôleur de vue est le propriétaire.

Les plumes sont chargées en utilisant:

[[NSBundle mainBundle] loadNibNamed:@"NibName" owner:nil options:nil];

Le paramètre propriétaire est particulièrement important. Il s'agit de l'instance d'exécution d'une classe qui possède le contenu (sorties, actions et objets) de la nib en cours de chargement.

J'espère que c'est clair. Pour voir cela au travail, créez un tout nouveau projet iPhone avec un contrôleur de vue. Ouvrez le fichier Nib et jetez un œil à l'onglet identité.

Le premier répondant est simplement le premier objet de la chaîne de répondants qui peut répondre aux événements. La chaîne de répondeurs est une collection d'exécution (ou plus précisément une hiérarchie) d'objets qui peuvent répondre à un événement. Par exemple, considérez que vous avez une fenêtre avec une vue et sur cette vue se trouve un champ de texte.

Si ce champ de texte a le focus, il est connu comme le premier répondant de la chaîne. Donc, si vous envoyez un message au premier répondant, il sera d'abord envoyé au champ de texte. Si le champ de texte ne peut pas gérer le message, il sera envoyé au prochain répondant. Et la prochaine. Et le suivant, jusqu'à ce que vous arriviez à la fin de la chaîne de répondeur ou que quelque chose ait consommé l'événement (iirc).

La chaîne de répondeurs mérite d'être lue - consultez la documentation d'Apple pour plus d'informations.

168
dannywartnaby