objective c - Why is BOOL turned to int when negated with explicit block return type -
why Error: to return type 'int' Back returns type 'BOOL' (aka 'signed four) should the block literally unspecified clear return type that 'C' objective Due to ! C99 say 6.5.3.3 Single arithmetic operators, Article 5: The result logical rejection operator! 0 if the value of its operand compares to 0 with the unequal, 1 if the value of its operand compares to 0 equals. The result type is int. Expression! E is equal to (0 == E.) You put it: BOOL
, which four signed a typedef
Is it changed when converted to int
?
does not // compile NSInteger events = [[contactCountries indexesOfObjectsPassingTest: ^ (id obj, NSUInteger IDX, BOOL * off) {return [isEqualIgnoringCase obj: @ "astring"]; }] Calculation];
to about
operator (my emphasis): The
return (bool) [isEqualIgnoringCase obj: @ "astring"];
Comments
Post a Comment