我正在查看Apple的一个XCode教程,并在类方法的实现中遇到了类似的内容:
void (^foo)(void);
foo = ^(void) {
NSLog(@"Hello, World!");
};
foo();
现在显然这是某种函数声明,实现和用法。但是,我想更多地了解它,它叫什么,它的局限性和优点是什么。我的在线搜索没有任何相关性。有人能指出我正确的方向吗?
答案 0 :(得分:4)
他们被称为blocks。您可以将块视为一大块代码,您可以将其传递给程序的其他部分。 Apple最近将它们添加到C和Objective-C编译器中,但是一些较新的API代替了块或者选择器或函数指针。
答案 1 :(得分:0)