使用文档中的apple's example
float (^oneFrom)(float);
oneFrom = ^(float aFloat) {
float result = aFloat - 1.0;
return result;
};
我收到两个错误:
同样来自doc ..
如果没有显式声明块的返回值 表达式,它可以从内容中自动推断出来 块。如果推断返回类型并且参数列表无效, 那么你也可以省略(void)参数列表。如果或何时 存在多个return语句,它们必须完全匹配(使用 必要时铸造。)
答案 0 :(得分:3)
您不能仅在函数中定义文件范围上的块。这按预期工作:
void foo (void)
{
float (^oneFrom)(float);
oneFrom = ^(float aFloat) {
float result = aFloat - 1.0;
return result;
};
}
答案 1 :(得分:-1)
该块没有返回类型,默认返回类型为void,您需要转到
float (^oneFrom)(float);
oneFrom = ^ float (float aFloat) {
float result = aFloat - 1.0;
return result;
};
here是一个更好的阻止示例