Accueil Médias sociaux Comment utiliser les objets de bloc dans votre application iOS - les blocs objectifs

Comment utiliser les objets de bloc dans votre application iOS - les blocs objectifs

Vidéo: JOUÉ A MINECRAFT PE AVEC LA MANETTE PS4 SANS LAG ! 2025

Vidéo: JOUÉ A MINECRAFT PE AVEC LA MANETTE PS4 SANS LAG ! 2025
Anonim

Les blocs Objective-C sont comme les fonctions C traditionnelles en ce que les blocs sont de petites unités de code votre application iOS Ils peuvent être transmis en tant qu'arguments de méthodes et de fonctions, puis utilisés lorsqu'ils sont nécessaires pour effectuer un travail. (Comme beaucoup de sujets de programmation, la compréhension des objets de bloc est plus facile quand vous les utilisez.)

Avec iOS 4 et versions plus récentes, un certain nombre de méthodes et fonctions des frameworks système commencent à prendre des blocs comme paramètres.

Gestionnaires d'achèvement
  • Gestionnaires de notification

  • Gestionnaires d'erreur

  • Énumération

  • Tri

  • Ici, vous pouvez utiliser une méthode en bloc pour animer une voiture, mais bloquer Les objets ont également un certain nombre d'autres utilisations, en particulier dans Grand Central Dispatch et la classe NSOperationQueue, les deux technologies recommandées pour le traitement simultané. N'hésitez pas à vérifier le traitement simultané.

L'une des valeurs de l'utilisation des blocs est que vous pouvez accéder aux variables locales (ainsi qu'aux variables d'instance), ce que vous ne pouvez pas faire dans une fonction ou un rappel. Vous n'avez pas non plus besoin de transmettre des données - un bloc peut modifier les variables pour renvoyer des données. De plus, si vous avez besoin de changer quelque chose, il n'y a pas d'API à changer, avec son effet d'entraînement concomitant.

Il est parfois plus facile de suivre ce qui se passe en déclarant une variable de bloc et en la passant comme argument à la méthode. La syntaxe de déclaration, cependant, est similaire à la syntaxe standard pour les pointeurs de fonction, sauf que vous utilisez un caret (^) au lieu d'un astérisque (*).

Si vous regardez animateWithDuration: animations: completion: dans la référence de la classe UIView, vous verrez des animations de durée

+ (void) animateWithDuration: (NSTimeInterval): (void (^) (void)) achèvement des animations: (void (^) (BOOL terminé)) achèvement;

Apple traite maintenant les blocs comme un modèle de conception principal, là-haut avec héritage et délégation - alors ne soyez pas surpris de trouver des blocs de plus en plus utilisés.

Néanmoins, parce que c'est un peu avancé, le code est étudié en profondeur afin que vous soyez à l'aise avec les blocs, malgré la syntaxe vraiment bizarre.

Pour commencer, voici la syntaxe qui définit les animations comme un bloc sans paramètre et sans valeur de retour:

void (^) (void)) animations

completion est défini comme un bloc sans retour value et prend un seul paramètre d'argument booléen:

(void (^) (BOOL terminé)) completion

Lorsque vous créez un bloc inline, vous utilisez simplement l'opérateur caret (^) pour indiquer le début d'un bloc et puis suivez le code inclus dans les accolades normales.C'est ce qui se passait avec les animations

: ^ {self. voiture. center = center;}

et

completion: ^ (BOOL terminé) {[self rotate];}

Bien que dans cet exemple vous utilisiez des blocs inline, vous pouvez également les déclarer comme n'importe quelle autre variable locale. Ajoutez le code en gras à votre méthode testDrive en remplaçant ce que vous avez déjà à cet endroit.

- (IBAction) testDrive: (id) expéditeur {CGPoint centre = CGPointMake (voiture centre x, auto-vue, image origine, y + voiture, taille, hauteur / 2);

void (^ animation) () = ^ () { auto. voiture. centre = centre; }; void (^ achèvement) (BOOL) = ^ (BOOL terminé) { [rotation auto]; }; [UIView animateWithDuration: 3 animations: animation achèvement: achèvement]; } Lorsque vous déclarez un bloc, vous utilisez l'opérateur caret (^) pour indiquer le début d'un bloc avec le code entouré des accolades normales et un point-virgule pour indiquer la fin d'une expression de bloc.

La déclaration dans la liste 10-2 est à peu près la même que celle que vous voyez dans animateWithDuration: animations: completion: déclaration de méthode, sauf que les identifiants ont été déplacés un peu. Les deux sont en gras pour rendre cela un peu plus facile à voir:

+ (void) animateWithDuration: (NSTimeInterval) animations de durée: (

void (^) (void)) achèvement des animations: ( void (^) (BOOL terminé) ) achèvement; Ici, vous déclarez deux variables de bloc en utilisant l'opérateur ^: une avec le nom des animations qui n'a pas de valeur de retour, et une avec le nom d'achèvement qui n'a pas de valeur de retour et prend BOOL comme argument unique:

void (^ animation) () void (^ completion) (BOOL)

C'est comme toute autre déclaration de variable (int i = 1, par exemple), dans laquelle vous suivez le signe égal avec sa définition.

Vous utilisez à nouveau l'opérateur ^ pour indiquer le début du

bloc literal - la définition affectée à la variable de bloc. Le bloc littéral inclut les noms d'argument (finis) ainsi que le corps (code) du bloc et se termine par un point-virgule: void

(^ animation) () = ^ () {soi. voiture. centre = centre;}; void (^ achèvement) (BOOL) = ^ (BOOL terminé) {[auto rotation];}; Une fois que vous aurez compris les blocs, vous trouverez toutes sortes d'occasions de les utiliser pour simplifier votre code.
Comment utiliser les objets de bloc dans votre application iOS - les blocs objectifs

Le choix des éditeurs

Comment utiliser les estimations du travail dans QuickBooks 2012 - dummies

Comment utiliser les estimations du travail dans QuickBooks 2012 - dummies

Si vous avez dit à QuickBooks 2012 que vous voulez pour créer des estimations - vous le faites pendant la configuration de QuickBooks - vous pouvez créer des estimations d'emploi des montants que vous facturez plus tard. Pour créer une estimation de travail, choisissez la commande Clients → Créer une estimation. QuickBooks affiche la fenêtre Créer des estimations. En un mot, vous remplissez le formulaire Créer des estimations ...

Comment utiliser les estimations du travail dans QuickBooks 2011 - les nuls

Comment utiliser les estimations du travail dans QuickBooks 2011 - les nuls

Si vous avez dit à QuickBooks 2011 que vous voulez pour créer des estimations - vous le faites pendant la configuration de QuickBooks - vous pouvez créer des estimations d'emploi des montants que vous facturez plus tard. Pour créer une estimation de travail, sélectionnez Clients → Créer des estimations. QuickBooks affiche la fenêtre Créer des estimations. Une estimation n'est qu'un exemple ou une conjecture sur l'avenir ...

Comment utiliser les classes pour l'établissement des coûts par activité dans QuickBooks 2011 - les nuls

Comment utiliser les classes pour l'établissement des coûts par activité dans QuickBooks 2011 - les nuls

Définis une classe dans QuickBooks pour chaque produit ou service pour lequel vous voulez mesurer la rentabilité. Par exemple, si vous possédiez une entreprise de vente de hot-dogs, vous créeriez deux classes dans QuickBooks: une pour les hot-dogs ordinaires et une pour les chilidogs. Pour configurer un cours, vous pouvez simplement entrer ...

Le choix des éditeurs

Configuration et lecture des flux RSS via Outlook 2007 - Les mannequins

Configuration et lecture des flux RSS via Outlook 2007 - Les mannequins

Outlook 2007 dispose d'un dossier distinct pour la réception Flux RSS, de sorte que vous pouvez organiser les informations d'une manière que vous trouvez utile. Généralement, vous n'avez pas besoin de savoir comment fonctionne le RSS, mais il est bon de savoir qu'il est disponible quand cela vous est utile. RSS signifie Really Simple Syndication ou Rich Site Summary. RSS ...

En triant une liste dans Outlook 2007 - des mannequins

En triant une liste dans Outlook 2007 - des mannequins

En termes d'Outlook 2007, le tri signifie simplement mettre votre liste en ordre. En fait, une liste est toujours dans un ordre quelconque. Le tri change juste l'ordre. Vous pouvez dire dans quel ordre votre liste est triée en recherchant des triangles dans les en-têtes. Un en-tête avec un triangle signifie que l'ensemble ...

Abonnez-vous à YouTube Channel dans Outlook 2013 - des mannequins

Abonnez-vous à YouTube Channel dans Outlook 2013 - des mannequins

Le moyen le plus simple de s'abonner aux chaînes YouTube dans Outlook 2013 est d'utiliser Internet Explorer. Vous avez besoin d'Internet Explorer version 7 ou ultérieure pour le faire. Lorsque vous vous abonnez à un flux dans Outlook ou Internet Explorer, ce flux devient disponible dans les deux programmes. Internet Explorer vous permet de vous abonner plus facilement ...

Le choix des éditeurs

Office 2011 pour Mac: commentant une présentation PowerPoint partagée - les nuls

Office 2011 pour Mac: commentant une présentation PowerPoint partagée - les nuls

PowerPoint 2011 pour Mac a des outils de commentaires qui vous aident à communiquer avec les autres lorsque vous collaborez tous sur une présentation. Le groupe Commentaires de l'onglet Révision du ruban Office 2011 vous permet de communiquer avec votre collaborateur (ou avec vous-même) sans perturber le contenu de vos diapositives. Les zones de commentaire sont des zones de texte ...

Comment afficher les diapositives dans PowerPoint 2008 pour Mac - dummies

Comment afficher les diapositives dans PowerPoint 2008 pour Mac - dummies

Vous avez cinq façons d'afficher votre travail dans PowerPoint dans Office 2008 pour Mac: vue normale, vue Trieuse de diapositives, vue Diaporama, vue Page Notes et vue Outils Presenter. Il existe également trois vues principales: Diapositive, Document et Notes. Vous pouvez choisir l'une des vues dans le menu Affichage, ou vous pouvez cliquer sur ...

Office 2011 pour Mac: Formats de fichiers pour l'enregistrement de présentations PowerPoint - mannequins

Office 2011 pour Mac: Formats de fichiers pour l'enregistrement de présentations PowerPoint - mannequins

Les formats de fichiers XML ouverts basés sur le Web ont révolutionné la façon dont Office stocke le multimédia dans ses documents, et PowerPoint 2011 ne fait pas exception à la règle. Tous les formats XML répertoriés dans Fichier → Enregistrer sous sont des packages qui contiennent la présentation et des copies de fichiers multimédias intégrés (images, sons et films). Les formats de fichier sont ...