如何在Objective-C中编写转义完成处理程序

时间:2018-09-30 14:30:12

标签: objective-c completionhandler

我想知道我们是否可以在Objective-C中编写转义完成处理程序,该处理程序在执行时会从函数中返回。

我在Swift中使用了转义完成处理程序。

我尝试在Objective-C中使用相同的控件,但是完成处理程序不会从该函数返回。该功能将执行到最后。

我正在此处发布我的摘录的一部分。

-(void)chosenFrom:(NSDictionary<NSString *,id> *)info withCompletion:(void(^)(MyCustomData * data)) completion {

    if([info objectForKey:@"SampleKey1"])
    {
        MyCustomData * fakeData;
        completion(fakeData);
    }

    if([info objectForKey:@"SampleKey2"])
    {
        MyCustomData * fakeData;
        completion(fakeData);
    }
    completion(nil);
}

当我调用此函数时,它将进入if块内,但它不会继续执行,而是从带有完成处理程序的函数返回。

PS:我不能使用return,因为我在该函数内部有一个异步内部函数。

0 个答案:

没有答案