iOS -

1. Catégorie

  La catégorie consiste à ajouter des méthodes à la classe d'origine, ne peut pas ajouter d'attributs

  @Property dans la catégorie ne générera que des déclarations getter.setter et ne générera pas d'implémentations de méthode et de variables membres.

  La classification peut accéder aux propriétés déclarées dans la classe d'origine.h

  Si une méthode dans une catégorie a le même nom que la méthode d'origine, alors appeler la méthode avec la classe d'origine appelle en fait la méthode de la catégorie.

  Si plusieurs catégories ont la même méthode que la classe d'origine, le compilateur décide laquelle appeler lors de l'appel. La méthode de la dernière catégorie impliquée dans la compilation est appelée.

2. Extension

  Vous pouvez étendre les variables et les méthodes des membres privés pour la classe

  Écrit en .m

  @interface nom de classe ()

  @fin

3. Bloquer

  Le bloc est un type de données spécial d'iOS, utilisé pour enregistrer un certain morceau de code, puis l'appeler lorsque cela est nécessaire

  

Type de valeur de retour (^ blockName) (liste de paramètres formels); 
blockName = ^ (liste de paramètres formels) {code}; // enregistrer le code 
blockName = ^ {}
block (); // call
typedef  int (^ sumBlock) ( int , int ); 
sumBlock = ^ ( int num1, int num2) { return num1 + num2;}; 
sumBlock ( 2 , 3 );

 Le bloc peut accéder aux variables externes et peut également définir les mêmes noms de variables que les variables externes, mais par défaut, les variables externes ne peuvent pas être modifiées (une valeur de passage)

le bloc accède aux variables externes, le bloc copiera les variables externes dans la mémoire du tas

int a = 10 ; 
 void (^ block) () = ^ { 
    NSLog ( " % i " , a);   // copie une copie de a = 10 pour stocker la mémoire 
}; 
a = 20 ; 
block (); // this Lors de l'impression 10

Si le bloc souhaite modifier la valeur de la variable externe, vous devez ajouter __bloc devant la variable externe. À ce stade, si le bloc modifie la valeur de la variable externe, cela affectera la valeur de la variable externe (valeur de transfert d'adresse & a)

Par défaut, bloquer 

Je suppose que tu aimes

Origine www.cnblogs.com/yintingting/p/12675983.html
conseillé
Classement