• Nenhum resultado encontrado

OS BLOCKS SÃO SEUS AMIGOS (QUASE SEMPRE)

N/A
N/A
Protected

Academic year: 2021

Share "OS BLOCKS SÃO SEUS AMIGOS (QUASE SEMPRE)"

Copied!
66
0
0

Texto

(1)

OS BLOCKS SÃO SEUS AMIGOS

(QUASE SEMPRE)

Diogo Tridapalli

@diogot

(2)

SUMÁRIO

Introdução à closures e sintaxe básica

Principais usos

Características com exemplos

Tips and Tricks

2

Wednesday, July 10, 13

(3)

SUMÁRIO

Introdução à closures e sintaxe básica

Principais usos

Características com exemplos

(4)

4

Closure é uma função (ou referência à uma função)

junto com um contexto referenciado.

Diferente de um ponteiro de função um closure

tem acesso às variáveis do contexto em que foi

declarado mesmo quando executado fora do

escopo declarado.

http://en.wikipedia.org/wiki/Closure_(computer_science)

Wednesday, July 10, 13

(5)
(6)

5

http://developer.apple.com/library/ios/#documentation/cocoa/Conceptual/Blocks/

Articles/bxGettingStarted.html#//apple_ref/doc/uid/TP40007502-CH7-SW1

(7)

http://developer.apple.com/library/ios/#documentation/cocoa/Conceptual/Blocks/

Articles/bxGettingStarted.html#//apple_ref/doc/uid/TP40007502-CH7-SW1

(8)

6

Wednesday, July 10, 13

(9)
(10)

6

Blocks são objetos de Obj-c

Compatíveis com C e C++ puros

(11)

Blocks são objetos de Obj-c

Compatíveis com C e C++ puros

(12)

6

Blocks são objetos de Obj-c

Compatíveis com C e C++ puros

OS X v10.6+ (GCC e Clang)

Runtime open source e presente no OS X v10.6+

e iOS 4+

(13)
(14)

7

0

75

150

225

300

4.0

4.1

4.2

4.3

5.0

6.0

6.1

7.0

M

ét

od

os

com

block

s

versão do iOS

PRESENÇA NO IOS

Wednesday, July 10, 13

(15)

SUMÁRIO

Introdução à closures e sintaxe básica

Principais usos

Características com exemplos

(16)

9

Encapsulamento de

unidades de trabalho que

podem ser executadas de

forma concorrente ou em

itens de coleções;

(17)

Encapsulamento de

unidades de trabalho que

podem ser executadas de

forma concorrente ou em

itens de coleções;

(18)

9

Encapsulamento de

unidades de trabalho que

podem ser executadas de

forma concorrente ou em

itens de coleções;

(19)
(20)

10

Callbacks e delegates.

(21)
(22)

SUMÁRIO

Introdução à closures e sintaxe básica

Principais usos

Características com exemplos

Tips and Tricks

12

Wednesday, July 10, 13

(23)
(24)

14

Wednesday, July 10, 13

(25)

Lista de argumentos tipados como uma função;

(26)

16

Wednesday, July 10, 13

(27)

Lista de argumentos tipados como uma função;

Resposta tipada declarada ou inferida;

Captura de contexto no escopo onde foi

(28)

18

Wednesday, July 10, 13

(29)

Lista de argumentos tipados como uma função;

Resposta tipada declarada ou inferida;

Captura de contexto no escopo onde foi

declarado;

Modificar o contexto no escopo onde foi

(30)

20

Wednesday, July 10, 13

(31)

Lista de argumentos tipados como uma função;

Resposta tipada declarada ou inferida;

Captura de contexto no escopo onde foi

declarado;

Modificar o contexto no escopo onde foi

declarado;

Compartilhar o potencial de modificação com

(32)

22

Wednesday, July 10, 13

(33)

Lista de argumentos tipados como uma função;

Resposta tipada declarada ou inferida;

Captura de contexto no escopo onde foi declarado;

Modificar o contexto no escopo onde foi declarado;

Compartilhar o potencial de modificação com

outros blocks definidos no mesmo escopo;

Continuar compartilhando e modificado o escopo

(34)

24

Wednesday, July 10, 13

(35)

SUMÁRIO

Introdução à closures e sintaxe básica

Principais usos

Características com exemplos

(36)

26

BLOCKS SÃO CRIADOS

NO STACK

http://www.friday.com/bbum/2009/08/29/blocks-tips-tricks/

(37)

BLOCKS SÃO CRIADOS

NO STACK

(38)

26

BLOCKS SÃO CRIADOS

NO STACK

http://www.friday.com/bbum/2009/08/29/blocks-tips-tricks/

(39)

BLOCKS SÃO CRIADOS

NO STACK

(40)

26

BLOCKS SÃO CRIADOS

NO STACK

http://www.friday.com/bbum/2009/08/29/blocks-tips-tricks/

(41)

BLOCKS SÃO CRIADOS

NO STACK

(42)

26

BLOCKS SÃO CRIADOS

NO STACK

http://www.friday.com/bbum/2009/08/29/blocks-tips-tricks/

(43)
(44)

28

Wednesday, July 10, 13

(45)
(46)

28

Blocks são criados no stack!

Blocks são objetos do obj-c

(47)

Blocks são criados no stack!

Blocks são objetos do obj-c

Use copy quando o block for utilizado após o escopo de

(48)

28

Blocks são criados no stack!

Blocks são objetos do obj-c

Use copy quando o block for utilizado após o escopo de

criação ter sido destruído

Sempre use copy para os adicionar em arrays e

dictionaries

(49)

Blocks são criados no stack!

Blocks são objetos do obj-c

Use copy quando o block for utilizado após o escopo de

criação ter sido destruído

Sempre use copy para os adicionar em arrays e

dictionaries

Se precisar de múltiplas cópias, faça a primeira cópia e

(50)

28

Blocks são criados no stack!

Blocks são objetos do obj-c

Use copy quando o block for utilizado após o escopo de

criação ter sido destruído

Sempre use copy para os adicionar em arrays e

dictionaries

Se precisar de múltiplas cópias, faça a primeira cópia e

então faça outras cópias à partir dessa

Funções devem retornar cópias

http://stackoverflow.com/questions/7997666/storing-blocks-in-an-array/7999115#7999115

(51)

__BLOCK EM MÉTODOS

ASSÍNCRONOS

(52)

__BLOCK EM MÉTODOS

ASSÍNCRONOS

29

http://stackoverflow.com/questions/9407675/objective-c-blocks-and-variable-scope

(53)
(54)

RETAIN CLYCLES

30

Wednesday, July 10, 13

(55)
(56)

31

Wednesday, July 10, 13

(57)
(58)

31

Wednesday, July 10, 13

(59)
(60)

32

REFERENCIAS

(61)

REFERENCIAS

http://developer.apple.com/library/ios/#documentation/cocoa/Conceptual/

(62)

32

REFERENCIAS

http://developer.apple.com/library/ios/#documentation/cocoa/Conceptual/

Blocks/Articles/00_Introduction.html

http://www.mikeash.com/pyblog/friday-qa-2009-08-14-practical-blocks.html

Wednesday, July 10, 13

(63)

REFERENCIAS

http://developer.apple.com/library/ios/#documentation/cocoa/Conceptual/

Blocks/Articles/00_Introduction.html

http://www.mikeash.com/pyblog/friday-qa-2009-08-14-practical-blocks.html

(64)

32

REFERENCIAS

http://developer.apple.com/library/ios/#documentation/cocoa/Conceptual/

Blocks/Articles/00_Introduction.html

http://www.mikeash.com/pyblog/friday-qa-2009-08-14-practical-blocks.html

http://pragmaticstudio.com/blog/2010/9/15/ios4-blocks-2

http://yannickloriot.com/wp-content/uploads/2011/11/Yannick-Loriot-Block-Cheat-Sheet.pdf

Wednesday, July 10, 13

(65)

REFERENCIAS

http://developer.apple.com/library/ios/#documentation/cocoa/Conceptual/

Blocks/Articles/00_Introduction.html

http://www.mikeash.com/pyblog/friday-qa-2009-08-14-practical-blocks.html

http://pragmaticstudio.com/blog/2010/9/15/ios4-blocks-2

http://yannickloriot.com/wp-content/uploads/2011/11/Yannick-Loriot-Block-Cheat-Sheet.pdf

http://www.cocoawithlove.com/2009/10/how-blocks-are-implemented-and.html

(66)

33

OBRIGADO

diogo@diogot.com

@diogot

Referências

Documentos relacionados

A equipe técnica seleciona os pacientes que estão ausentes das atividades do tratamento há, no mínimo, três semanas e então são feitas três tentativas de contato

Para Tagiuri; Davis (1996), uma empresa familiar se dá quando membros da família controlam a direção do negócio em cargos gerenciais ou direito de propriedade;

A discussão dos resultados procurou colaborar na instrumentalização dos profissionais da área, ao discutir as representações sociais da saúde bucal e ao proporcionar uma

Seguindo a orientação da citação acima, as mudanças que identificamos nas configurações observadas se aproximam do que a autora identifica como redimensionamento da

3.3 Desenho do estudo Foi realizado um estudo observacional e retrospectivo para indicação ao tratamento endoscópico, acompanhando pacientes com fístula gastrobrônquica operados

Dessa maneira, os resultados desta tese são uma síntese que propõe o uso de índices não convencionais de conforto térmico, utilizando o Índice de Temperatura de Globo Negro e

We based our target capital structure on the current and historical levels of market net debt-to- enterprise value for WhiteWave, as well as the average level of its peers..

Afinal de contas, tanto uma quanto a outra são ferramentas essenciais para a compreensão da realidade, além de ser o principal motivo da re- pulsa pela matemática, uma vez que é