我想知道我们是否可以在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,因为我在该函数内部有一个异步内部函数。