views:

178

answers:

3

What does the caret in objective C mean?

ie.

void (^handler)(NSInteger);

from Mac Dev Center

+5  A: 

The caret represents a block or a closure which carries around or contains the lexical scope. They are similar to blocks in ruby. An excellent reference can be found here.

ennuikiller
Could you give any more detail?
Casebash
added a reference above that should get you started
ennuikiller
+3  A: 

Like ennuikiller said, it indicates a block. If you want to learn more, Ars Technica had an excellent in-depth review of Snow Leopard that described not only blocks and closures, but also Grand Central Dispatch and all the other new technologies in Mac OS X 10.6. Highly recommended.

Shaggy Frog
+8  A: 

It depends on the context. In the example you show, it's used to denote a Block. The caret symbol is also the bitwise XOR operator in C-based languages — that's what most programmers would identify it as, so it's good to understand that it can be both depending on where it appears, much like *, etc.

And while we're suggesting references, one simply has to include Apple's official Blocks reference.

Quinn Taylor