Не уверен в имени метода блочного кода

Я хочу создать метод, который запускает предоставленный пользователем блок кода, используя группы диспетчеризации, и имеет следующую реализацию:

dispatch_group_enter(self.group);
block(^ {
    dispatch_group_leave(self.group);
    if (completion) {
        completion();
    }
});

dispatch_group_wait(self.group, DISPATCH_TIME_FOREVER);

Однако я не уверен, как написать название этого метода.

Это было бы что-то похожее на:

- (void)performBlock:(void(^)())block;

Но потом следует помнить, что предоставленный блок должен иметь собственный обратный вызов для завершения.

Реализация будет примерно такой:

[object performBlock:^(void(^)() completion) {
    //Do stuff
    completion();
}];

1 ответ

Я неправильно понял вопрос, если я предлагаю?

- (void)performBlock:(void(^)())block completion:(void(^)())completion;

Если я не понял неправильно, я бы рекомендовал добавить поддержку обработки ошибок

- (void)performBlock:(void(^)())block completion:(void(^)(NSError *err))completion;
Другие вопросы по тегам