Проблема в том, что ваш блок имеет тип:
BOOL (^blockRelationship)(id,id)
но вторым параметром в инициализации и типе параметра в объявлении метода является NSString *
Измените определение вашего блока на
BOOL (^blockRelationship)(id,NSString*)=^(id obj,NSString* relationship) { ... } ;
Я тестировал вышеупомянутое в GCC 4.2, GCC 4.2 LLVM и Clang LLVM 1.6.
Со вторым параметром id
, в первых двух случаях ваша ошибка появляется как в строке инициализации, так и в строке, где она передается в качестве параметра toDictionaryBlockingRelationships:
В случае Clang я не получил никакой ошибки вообще ,
С NSString*
в качестве второго параметра не было ошибок во всех трех компиляциях.