Como posso recuperar um valor de retorno de um bloco de conclusão?

possível executar um bloco de conclusão no thread principa

Por exemplo, eu tenho um método que retorna um valor:

- (int)test
{

    /* here one method is called with completion block with return type void */

    [obj somemethodwithcompeltionblock:
      {
         /* here I am getting my Int which I want to return */
      }
      ];
}

mas não consigo ver como retornar o valor inteiro de dentro do bloco de conclusão como resultado deste método, porque o bloco de conclusão é executado em um encadeamento em segundo plan

Como posso fazer isso

questionAnswers(1)

yourAnswerToTheQuestion