Ответ 1
Вам не хватает некоторых основ асинхронной разработки с блоками. Вы не можете вернуть отправленный блок из любого места, кроме своей области. Подумайте о каждом блоке как о собственном методе, а не о встроенном коде.
Я думаю, что то, что вы ищете, похоже на это...
- (void)testWithHandler:(void(^)(int result))handler
{
[obj somemethodwithcompeltionblock:^{
int someInt = 10;
dispatch_async(dispatch_get_main_queue(), ^{
handler(10);
});
}
];
}
- (void)callSite
{
[self testWithHandler:^(int testResult){
NSLog(@"Result was %d", testResult);
}];
}