Вы можете выполнить блок с завершениеБлока (док).
[doc openWithCompletionHandler:^(BOOL success)
{
// Can I call the completionBlock from above in here?
// How do I pass back the opened UIDocument
completionBlock(doc);
}];
Предположим, что в классе реализован следующий метод, который будет вызывать ваш метод openVacation:
-(void)vacationOpened:(UIManagedDocument *)vacation
{
NSLog(@"My Vacation: %@", vacation.description);
}
Пример строки кода, которая будет вызывать ваш метод openVacation, будетбыть:
[MyVacationsHelper openVacation:@"MyVacation1" usingBlock:^(UIManagedDocument *vacation){
[self vacationOpened:vacation];
}];
(UIManagedDocument * отпуск) после каретки означает, что при выполнении блока с использованием записи в скобках - как в завершениеБлок (документ) - вам нужно перечислить (UIManagedDocument *) в качестве параметра.Значение этого параметра будет упоминаться как отпуск внутри указанного блока.То, что я сделал в моем примере блочного кода выше, - это вызов метода в моем текущем классе (self) и передача параметра этому методу, чтобы я мог использовать его по мере необходимости (я просто сделал NSLog здесь, чтобы убедиться, что он работает).