【问题标题】:Not sure on method name of block code不确定块代码的方法名称
【发布时间】:2014-08-11 18:16:07
【问题描述】:

我想创建一个方法来运行用户提供的代码块,利用调度组,实现如下:

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();
}];

【问题讨论】:

    标签: ios objective-c queue dispatch


    【解决方案1】:

    如果我建议,我是否误解了这个问题?

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

    如果我没有误解,我建议添加对错误处理的支持

    - (void)performBlock:(void(^)())block completion:(void(^)(NSError *err))completion;
    

    【讨论】:

    • 也许你误会了。更新了我对实现的想法。
    • 我承认我感到困惑。你建议的实现不是编译错误吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-10
    • 2010-10-18
    相关资源
    最近更新 更多