objective c 中不兼容的块指针类型

Incompatible block pointer types in objective c

我在“[NSTimer scheduledTimerWithTimeInterval:3/self.MAX repeats:YES 块:^{”这一行收到此错误 "Incompatible block pointer types sending 'void (^)(void)' to parameter of type 'void (^ _Nonnull)(NSTimer * _Nonnull __strong)'"。

提前致谢。

self.progressTimer = [NSTimer scheduledTimerWithTimeInterval:3/self.MAX repeats:YES block:^{
        self.progressRight.constant = self.progressRight.constant + 1.0;
        if (self.progressRight.constant >= self.MAX) {
            self.ENOUGH = YES;
            self.PANIC = NO;
            [self.progressTimer invalidate];
            [self submit];
        }
    }];

区块签名错误

自己解决此类问题

  • 注释掉整个方法。
  • 重新输入前几个字符并使用代码完成。
  • Select 所需的方法。

编译器会提示

[NSTimer scheduledTimerWithTimeInterval:3/self.MAX repeats:YES block:^(NSTimer * _Nonnull timer) {
    // code
}];

这就是错误信息所说的:

  • 预期类型 (^ _Nonnull)(NSTimer * _Nonnull __strong)
  • 给定类型'void (^)(void)