Preguntas etiquetadas con objective-c-blocks

Los bloques son la implementación de Apple de cierres para C, que también están disponibles para Objective-C y C ++.


8
¿Qué significa la palabra clave "__block"?
¿Qué significa exactamente la __blockpalabra clave en Objective-C? Sé que te permite modificar variables dentro de bloques, pero me gustaría saber ... ¿Qué le dice exactamente al compilador? ¿Hace algo más? Si eso es todo lo que hace, ¿por qué es necesario en primer lugar? ¿Está en los documentos en …



7
Lista de sintaxis de declaración de bloque
La sintaxis de bloque en el Objetivo C (y de hecho C, supongo) es notoriamente incongruente. Pasar bloques como argumentos se ve diferente a declarar bloques como ivars, que se ven diferentes a typedeflos bloques ing. ¿Existe una lista completa de sintaxis de declaración de bloque que pueda tener a …


10
Esperando hasta que se ejecuten dos bloques asíncronos antes de comenzar otro bloque
Cuando usamos GCD, queremos esperar hasta que se ejecuten y realicen dos bloques asíncronos antes de pasar a los siguientes pasos de ejecución. ¿Cuál es la mejor manera de hacer eso? Intentamos lo siguiente, pero no parece funcionar: dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0), ^ { // block1 }); dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0), ^ { // …


6
Cuándo usar enumerateObjectsUsingBlock vs. para
Además de las diferencias obvias: Utilizar enumerateObjectsUsingBlock cuando necesite tanto el índice como el objeto No lo use enumerateObjectsUsingBlockcuando necesite modificar variables locales (estaba equivocado sobre esto, vea la respuesta de bbum) ¿ enumerateObjectsUsingBlockGeneralmente se considera mejor o peor cuando for (id obj in myArray)también funcionaría? ¿Cuáles son las ventajas …

5
Declarar un parámetro de método de bloque sin usar un typedef
¿Es posible especificar un parámetro de bloque de método en Objective-C sin usar un typedef? Debe ser, como punteros de función, pero no puedo acertar en la sintaxis ganadora sin usar un typedef intermedio: typedef BOOL (^PredicateBlock_t)(int); - (void) myMethodTakingPredicate:(PredicateBlock_t)predicate solo las compilaciones anteriores, todas estas fallan: - (void) myMethodTakingPredicate:( …


7
Almacene un cierre como variable en Swift
En Objective-C, puede definir la entrada y salida de un bloque, almacenar uno de esos bloques que se pasa a un método, luego usar ese bloque más tarde: // in .h typedef void (^APLCalibrationProgressHandler)(float percentComplete); typedef void (^APLCalibrationCompletionHandler)(NSInteger measuredPower, NSError *error); // in .m @property (strong) APLCalibrationProgressHandler progressHandler; @property (strong) …

7
¿Alternativas a dispatch_get_current_queue () para bloques de finalización en iOS 6?
Tengo un método que acepta un bloque y un bloque de finalización. El primer bloque debería ejecutarse en segundo plano, mientras que el bloque de finalización debería ejecutarse en cualquier cola a la que se haya llamado al método. Para este último siempre lo usé dispatch_get_current_queue(), pero parece que está …

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.