不兼容的块指针类型初始化float

时间:2015-01-30 23:27:21

标签: objective-c block

我不确定如何让这个工作:我正在考虑与typedef有关,但我无法在这个主题上找到很多。

    float (^pixelsToDistance)(float, float, NSString *) = ^(float distance, float scale, NSString *conversion)
    { 
        // Code goes here        
    }

我试图从这个块函数返回一个浮点值。 我应该使用功能吗?

1 个答案:

答案 0 :(得分:0)

你很亲密。你想要:

float (^pixelsToDistance)(float, float, NSString *) = ^float(float distance, float scale, NSString *conversion) { ... };

请注意赋值运算符右侧^之后的返回类型。

正如评论员指出的那样,如果编译器清楚你从块返回的内容,则可以省略返回类型。 E.g:

float (^pixelsToDistance)(float, float, NSString *) = ^(float distance, float scale, NSString *conversion) { return 0.0f };