Quel est le but de l’utilisation de IBAction et IBOutlet en Objective-C codant pour l’iPhone, cela fait-il une différence si je ne les utilise pas ?
Réponses
Trop de publicités?IBAction
et IBOutlet
sont des macros définies pour désigner des variables et des méthodes qui peuvent être mentionnés dans Interface Builder.
IBAction
résout void
et IBOutlet
résout rien, mais ils signifient pour Xcode et Interface builder que ces variables et méthodes peuvent être utilisées dans Interface builder pour lier les éléments de l'INTERFACE utilisateur de votre code.
Si vous n'allez pas être en utilisant l'Interface Builder, vous n'en avez pas besoin dans votre code, mais si vous allez l'utiliser, vous devez spécifier IBAction
pour les méthodes qui seront utilisées dans l'IB et l' IBOutlet
pour les objets qui seront utilisés dans l'IB.
La manière traditionnelle de drapeau d'une méthode afin qu'elle s'affiche dans Interface Builder, et vous pouvez faire glisser une connexion à elle, a été de faire de la méthode type de retour IBAction. Cependant, si vous faites votre méthode void (IBAction est #define avais nulle), et de fournir une identification (id) de l'argument, la méthode est encore visible. Cela offre plus de flexibilité, vous al
Tous les 3 de ces sont visibles à partir de l'Interface Builder:
-(void) someMethod1:(id) sender;
-(IBAction) someMethod2;
-(IBAction) someMethod3:(id) sender;
Voir Apple Interface Builder Guide de l'Utilisateur pour plus de détails, notamment la section intitulée Xcode Intégration.
Vous avez besoin d'utiliser IBOutlet et IBAction si vous utilisez l'interface builder (d'où l'IB préfixe) pour vos composants GUI. IBOutlet est nécessaire d'associer les propriétés de votre application avec les composants de l'IB, et IBAction est utilisé pour permettre à vos méthodes pour être associés à des mesures de l'IB.
Par exemple, supposons que vous définissez un bouton et étiquette de l'IB. Pour modifier dynamiquement la valeur de l'étiquette en appuyant sur le bouton, vous allez définir une action et de la propriété dans votre application similaire à:
UILabel IBOutlet *myLabel;
-(IBAction) pushme;
Puis au bureau de l'IB vous connecter myLabel avec l'étiquette et de connecter le pushme méthode avec le bouton. Vous avez besoin IBAction et IBOutlet pour ces connexions existent dans de l'IB.
Interface Builder utilise pour déterminer quels membres et messages peuvent être « branchés » jusqu'à les contrôles de l’interface que vous utilisez dans votre fenêtre/vue.
IBOutlet et IBAction sont purement là comme marqueurs cette Interface Builder cherche lorsqu’il analyse votre code au moment du design, ils n’ont aucun effet sur le code généré par le compilateur.
IBAction et IBOutlets sont utilisés pour raccorder votre interface faite dans Interface Builder avec votre contrôleur. Si vous ne serait pas utiliser Interface Builder et construire votre interface complètement dans le code, vous pourriez faire un programme sans les utiliser. Mais en réalité, la plupart d'entre nous utilise Interface Builder, une fois que vous voulez obtenir une interactivité va dans votre interface, vous devrez utiliser IBActions et IBoutlets.