这个objective-c函数构造叫做什么?

时间:2011-06-20 21:31:01

标签: objective-c

我正在查看Apple的一个XCode教程,并在类方法的实现中遇到了类似的内容:

void (^foo)(void);

foo = ^(void) {

    NSLog(@"Hello, World!");
};

foo();

现在显然这是某种函数声明,实现和用法。但是,我想更多地了解它,它叫什么,它的局限性和优点是什么。我的在线搜索没有任何相关性。有人能指出我正确的方向吗?

2 个答案:

答案 0 :(得分:4)

他们被称为blocks。您可以将块视为一大块代码,您可以将其传递给程序的其他部分。 Apple最近将它们添加到C和Objective-C编译器中,但是一些较新的API代替了块或者选择器或函数指针。

答案 1 :(得分:0)