不兼容的块指针类型初始化浮点数

Incompatible block pointer type initializing float

我不确定如何让它工作:我在想一些与 typedef 有关的东西,但我找不到太多关于这个主题的东西。

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

我正在尝试从这个块函数中 return 一个浮点值。 我应该改用函数吗?

你很接近。你想要:

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

注意赋值运算符右侧 ^ 后的 return 类型。

正如评论员指出的那样,如果编译器清楚您要从块中 return 获取什么,则可以省略 return 类型。例如:

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