Вы пропустили важную часть ошибки компилятора.Я получаю:
foo.mm:6:34: error: no matching function for call to 'dispatch_block_create'
dispatch_block_t testBlock = dispatch_block_create(0, ^{
^~~~~~~~~~~~~~~~~~~~~
/usr/include/dispatch/block.h:171:1: note: candidate function not viable: no known conversion from 'int' to 'dispatch_block_flags_t' for 1st argument
dispatch_block_create(dispatch_block_flags_t flags, dispatch_block_t block);
^
1 error generated.
Важнейшей частью является «функция-кандидат недопустима: нет известного преобразования из« int »в« dispatch_block_flags_t »для 1-го аргумента» .Это связано с более строгой проверкой типов (Objective-) C ++.Вам нужно явно привести 0
к dispatch_block_flags_t
:
dispatch_block_t testBlock = dispatch_block_create(static_cast<dispatch_block_flags_t>(0), ^{ ... });