Obj C Blocks中的澄清

时间:2012-01-30 19:04:08

标签: objective-c ios objective-c-blocks

为什么这是一个错误?

float (^isFloat)(float) = ^(float d)
{
    return d*2.0;
};

在某个时候,以下内容没有错误,

float (^isFloat)(float) = ^(float d)
{
    return d;
};

请帮助我理解。

1 个答案:

答案 0 :(得分:9)

因为第一个块上的返回类型不正确。

您定义了该块以返回float,但您将float乘以double。如果将其更改为d * 2.0f,一切都应该正常工作。