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