2

是否有一种模式来指示函数的块被同步或异步调用,例如:

- (void)processImage:(UIImage *)image onComplete:(void (^)(NSError *__error))onComplete;

是一个函数,它将同步处理图像,然后onComplete(error)在完成时调用,但是:

- (void)downloadResourceIDs:(NSArray *)imageIDs onComplete:(void (^)(NSError *__error))onComplete;

是一个函数,它将异步下载数组中指定的资源,并onComplete(error)在下载完所有内容后调用,但是这不是很明显这是一个异步回调。例如,我可以使用dispatch_semaphoreindownloadResourceIDs:onComplete:来防止回调发生,直到所有内容都下载完毕。

或者,所有函数都应该是同步的,即使函数本身包含异步元素(如异步下载内容)并人为强制同步?

4

1 回答 1

2

我建议完成块足以传达异步调用。

为了我的钱,第一个界面是非常错误的。同步调用不需要完成块,接口中也不应该有 on。

于 2013-04-23T01:19:52.037 回答