我有一些 Obj-C 代码,其中我有一个包含许多块作为成员的类。有问题的财产如下:
@property(nonatomic, readonly, retain) BOOL(^truthPredicate)(int, NSMutableDictionary*);
并在文件中的一个@synthesize语句中实现。.m在init该类的一种方法中,我尝试将属性设置为文字块:
truthPredicate=^(int val, NSMutableDictionary* params) {return val >= MANodeTruthThreshold ? YES : NO;};
这表示编译器错误。编译器,尽管YESandNO被定义为(BOOL)1and (BOOL)0,并且BOOL被定义为signed char,编译器坚持认为我正在尝试将int返回块分配给BOOL返回变量。如何让 Obj-C 意识到我返回的是BOOLs,而不是ints?