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:
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 *)
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
} -
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)
}