Caret in objective C

2019-01-02 18:39发布

What does the caret in objective C mean?

ie.

void (^handler)(NSInteger);

from Mac Dev Center

3条回答
骚的不知所云
2楼-- · 2019-01-02 19:02

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.

查看更多
裙下三千臣
3楼-- · 2019-01-02 19:05

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.

查看更多
姐姐魅力值爆表
4楼-- · 2019-01-02 19:08

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.

查看更多
登录 后发表回答