Usando objetos bloco no iPhone e iPad Desenvolvimento de Jogos

blocos são uma extensão da linguagem C e são totalmente suportados pelo Objective-C, a linguagem de programação subjacente para todas as coisas do Mac. Nos novos iOS 4, os blocos são cada vez mais utilizados em vez de (ou para substituir)

  • Os delegados e os métodos de delegado

  • funções de retorno

  • manipuladores de conclusão para as operações de uma só vez

  • Outras técnicas de enumeração

  • tarefas assíncronas que precisam ser executadas

Com o iOS 4, os seguintes métodos e funções das estruturas de sistemas de tomar blocos como parâmetros:

  • manipuladores de conclusão

  • notificação manipuladores

  • Enumeração

  • Ver animação e transições

  • classificando

Os blocos podem ser declarados como variáveis, mas você também pode escrever uma linha literal bloco onde é exigido como um argumento.

Para declarar uma variável de bloco:

  1. Use o operador ^ com o nome da variável.

    Por exemplo, para declarar uma variável de bloco que retorna void e tem um NSNotification * como seu único argumento, faça o seguinte:

    void (^ keyBoardWillShow) (NSNotification *)
  2. Assim como com qualquer outra declaração de variável (como int i = 1), siga o sinal de igual com a sua definição.

    Para fazer isso usando o operador ^ novamente para indicar o início do bloco literal - a definição atribuída à variável bloco. O bloco literal inclui nomes de argumento, bem como o corpo (ou código) do bloco. Por exemplo, para informar o compilador que o nome do argumento é de notificação, faça o seguinte

    = ^ (NSNotification * notificação) {code 

    E, em seguida, acabar com o bloco literal com o habitual

    } -
  3. Use a variável de bloco, como faria com qualquer outra variável, como um argumento em uma mensagem:

    usingBlock: keyBoardWillShow

    Para escrever um bloco em linha literal, use o operador ^ para indicar o início do bloco literal - a definição atribuída à variável bloco. O bloco literal inclui nomes de argumentos, bem como o corpo (código) do bloco.

    Por exemplo, para escrever uma linha literal bloco onde é exigido como um argumento para usingBlock, faça o seguinte:

     usingBlock: ^ (NSNotification * notificação) {code 

    E, em seguida, acabar com o bloco literal com a usual (não é necessário nenhum ponto e vírgula, porque ele está sendo usado como um argumento dentro de uma mensagem)

}

menu