我需要编写一个方法来执行一些异步操作(HTTP GET请求),并在完成时调用一些作为回调提供的方法。
在Objective-C中执行此类操作的适当方法是什么?我应该为成功和错误处理提供一个完成回调,还是应该将它们作为单独的参数传递?
另外,我该如何命名这种方法?这里的最佳做法是什么?
答案 0 :(得分:2)
在异步过程完成时设置委托并在委托中调用完成方法是一种方法。
在过去几年中,Apple和更大的iOS / Mac社区已经从这种设计模式转移。相反,您更有可能找到一个采用完成块的方法。该完成块可能具有成功参数,数据参数和错误参数。
以现在弃用的NSURLConnection类中的sendAsynchronousRequest:queue:completionHandler:
方法为例,或NSURLSession中最新的dataTaskWithURL:completionHandler:
方法。两者都采用在异步请求完成处理时调用的完成处理程序。
我改变了我的习惯,更有可能使用完成块而不是新设计中的代表和回调。
答案 1 :(得分:0)
这取决于您的偏好。我的偏好是只有一个回调。在那,我会检查错误。如果不存在错误,那么我将假设响应成功,然后开始相关处理。