Objective-C LanguageBloques


Sintaxis

  • // Declarar como una variable local:

    returnType (^ blockName) (parametersType1, parametersType2, ...) = ^ returnType (argumento1, argumento2, ...) {...};

  • // Declarar como una propiedad:

    @propiedad (nonatomic, copy, nullability) returnType (^ blockName) (parametersTypes);

  • // Declarar como un parámetro del método:

    - (void) someMethodThatTakesABlock: (returnType (^ nullability) (parametersTypes)) blockName;

  • // Declarar como un argumento a una llamada de método:

    [someObject someMethodThatTakesABlock: ^ returnType (parámetros) {...}];

  • // Declarar como un typedef:

    typedef returnType (^ TypeName) (parametersTypes);

    TypeName blockName = ^ returnType (parámetros) {...};

  • // Declarar una función en C devolver un objeto de bloque:

    BLOCK_RETURN_TYPE (^ function_name (parámetros de función)) (BLOCK_PARAMETER_TYPE);

Observaciones

Los bloques se especifican en la Especificación de lenguaje para bloques para C, Objective-C, C ++ y Objective-C ++.

Además, la ABI de bloques está definida por la Especificación de implementación de bloques .

Bloques Ejemplos relacionados