我在 .mm 文件中有以下代码:
[UIView animateWithDuration:0.3 animations:^{
self.titleLabel.alpha = 0.0;
} completion:^(BOOL finished) { //<<compiler complains here
self.titleLabel.alpha = 1.0;
}];
但我得到编译器错误:
无法使用“void (^)(int)”类型的右值初始化“void (^)(BOOL)”类型的参数
在上面提到的那条线上。该代码在普通的 .m 文件中很好。我做错了什么,还是编译器有问题?
更新:标题导入是:
#import <UIKit/UIKit.h>
和 .mm 进口(审查):
#import "XXSelectViewController.h"
#import "XXViewController.h"
#import "AboutViewController.h"
#import "HighScoresViewController.h"
#import "GameModel.h"
更新2:另外,我在这一行收到警告:
- (void)viewDidDisappear:(BOOL)animated
警告:
'viewDidDisappear:' 实现中的参数类型冲突:'BOOL' (aka 'signed char') vs 'int'
我们在这个项目中使用了 PowerVR 工具,在 PVRShell.h 和 PVRTResourceFile.h 中有以下几行:
typedef bool (*PFNReleaseFileFunc)(void* handle);
typedef bool (*PFNReleaseFileFunc)(void* handle);
我不知道这是否与这些问题有关...