私はいくつかのObj-Cコードを持っており、その中には多くのブロックをメンバーとして持つクラスがあります。問題のプロパティは次のとおりです。
@property(nonatomic, readonly, retain) BOOL(^truthPredicate)(int, NSMutableDictionary*);
@synthesize
そして、ファイル内のステートメントに実装され.m
ます。init
クラスのメソッドの1つで、プロパティをリテラルブロックに設定しようとしました。
truthPredicate=^(int val, NSMutableDictionary* params) {return val >= MANodeTruthThreshold ? YES : NO;};
これは、コンパイラエラーを示します。コンパイラーは、andがandYES
としてNO
定義(BOOL)1
され、として定義されているにもかかわらず、戻りブロックを戻り変数に割り当てようとしていると主張します。Obj-Cに、sではなくsを返していることを認識させるにはどうすればよいですか?(BOOL)0
BOOL
signed char
int
BOOL
BOOL
int