有关使用回调创建方法的最佳实践

时间:2016-02-26 19:03:26

标签: ios objective-c

我需要编写一个方法来执行一些异步操作(HTTP GET请求),并在完成时调用一些作为回调提供的方法。

在Objective-C中执行此类操作的适当方法是什么?我应该为成功和错误处理提供一个完成回调,还是应该将它们作为单独的参数传递?

另外,我该如何命名这种方法?这里的最佳做法是什么?

2 个答案:

答案 0 :(得分:2)

在异步过程完成时设置委托并在委托中调用完成方法是一种方法。

在过去几年中,Apple和更大的iOS / Mac社区已经从这种设计模式转移。相反,您更有可能找到一个采用完成块的方法。该完成块可能具有成功参数,数据参数和错误参数。

以现在弃用的NSURLConnection类中的sendAsynchronousRequest:queue:completionHandler:方法为例,或NSURLSession中最新的dataTaskWithURL:completionHandler:方法。两者都采用在异步请求完成处理时调用的完成处理程序。

我改变了我的习惯,更有可能使用完成块而不是新设计中的代表和回调。

答案 1 :(得分:0)

这取决于您的偏好。我的偏好是只有一个回调。在那,我会检查错误。如果不存在错误,那么我将假设响应成功,然后开始相关处理。