2
我有以下的块代码编译错误与返回类型
typedef BOOL(^FieldValidationBlock)(NSString *);
FieldValidationBlock aBlock = ^(NSString *input){
return ([input length] == 10) ;
};
会抛出我编译错误这就是大老返回类型为int而应该是BOOL。 当我添加它只是罚款一投:
typedef BOOL(^FieldValidationBlock)(NSString *);
FieldValidationBlock aBlock = ^(NSString *input){
return (BOOL)([input length] == 10) ;
};
为什么出现这种情况?
嗯,即使当我尝试做“[input length] == 10?YES:NO”。这应该消除你所声称的问题,但它仍然无法工作。 – ugiflezet
我怀疑这可能与BOOL不是真正的一流类型有关,它们是用typedef标记字符,检查objc.h.解决错误的另一种方法是显式键入要分配的块,并避免使用类型推理器。 'FieldValidationBlock aBlock = BOOL ^(NSString * input){...}' – ikuramedia
对不起,这意味着'FieldValidationBlock aBlock =^BOOL(NSString * input){...}' – ikuramedia