Questions marquées «objective-c-blocks»

Les blocs sont l'implémentation par Apple des fermetures pour C, qui sont également disponibles pour Objective-C et C ++.


8
Que signifie le mot clé "__block"?
Que signifie exactement le __blockmot - clé dans Objective-C? Je sais que cela vous permet de modifier des variables dans des blocs, mais j'aimerais savoir ... Que dit-il exactement au compilateur? Cela fait-il autre chose? Si c'est tout ce qu'il fait, pourquoi est-il nécessaire en premier lieu? Est-ce dans les …

8
Attribuer une variable à l'intérieur d'un bloc à une variable à l'extérieur d'un bloc
Je reçois une erreur La variable n'est pas attribuable (spécificateur de type __block manquant) sur la ligne aPerson = participant;. Comment puis-je m'assurer que le bloc peut accéder à la aPersonvariable et que la aPersonvariable peut être retournée? Person *aPerson = nil; [participants enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) { …


7
Liste de syntaxe de déclaration de blocage
La syntaxe des blocs dans l'objectif C (et en fait C, je suppose) est notoirement incongrue. Passer des blocs comme arguments est différent de déclarer des blocs comme ivars, ce qui est différent des typedefblocs ing. Existe-t-il une liste complète de syntaxe de déclaration de bloc que je pourrais garder …


10
Attendre que deux blocs asynchrones soient exécutés avant de démarrer un autre bloc
Lors de l'utilisation de GCD, nous voulons attendre que deux blocs asynchrones soient exécutés et terminés avant de passer aux étapes d'exécution suivantes. Quelle est la meilleure façon de le faire? Nous avons essayé ce qui suit, mais cela ne semble pas fonctionner: dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0), ^ { // block1 }); …


6
Quand utiliser enumerateObjectsUsingBlock ou pour
Outre les différences évidentes: À utiliser enumerateObjectsUsingBlocklorsque vous avez besoin à la fois de l'index et de l'objet Ne pas utiliser enumerateObjectsUsingBlocklorsque vous devez modifier des variables locales (je me suis trompé à ce sujet, voir la réponse de bbum) Est-ce enumerateObjectsUsingBlockgénéralement considéré comme meilleur ou pire quand for (id …

5
Déclarer un paramètre de méthode de bloc sans utiliser de typedef
Est-il possible de spécifier un paramètre de bloc de méthode dans Objective-C sans utiliser de typedef? Cela doit être, comme les pointeurs de fonction, mais je ne peux pas trouver la syntaxe gagnante sans utiliser un typedef intermédiaire: typedef BOOL (^PredicateBlock_t)(int); - (void) myMethodTakingPredicate:(PredicateBlock_t)predicate seuls les compilations ci-dessus, tous échouent: …


7
Stocker une fermeture en tant que variable dans Swift
En Objective-C, vous pouvez définir l'entrée et la sortie d'un bloc, stocker un de ces blocs qui est passé à une méthode, puis utiliser ce bloc plus tard: // in .h typedef void (^APLCalibrationProgressHandler)(float percentComplete); typedef void (^APLCalibrationCompletionHandler)(NSInteger measuredPower, NSError *error); // in .m @property (strong) APLCalibrationProgressHandler progressHandler; @property (strong) …

7
Alternatives à dispatch_get_current_queue () pour les blocs de complétion dans iOS 6?
J'ai une méthode qui accepte un bloc et un bloc de complétion. Le premier bloc doit s'exécuter en arrière-plan, tandis que le bloc d'achèvement doit s'exécuter dans la file d'attente où la méthode a été appelée. Pour ce dernier, j'ai toujours utilisé dispatch_get_current_queue(), mais il semble qu'il soit obsolète dans …
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.