为了向用户显示信息,我的iOS应用程序必须调用许多不同的Web服务。这就是为什么我创建了一个Connection Helper类,它使用NSURLConnection来调用我的服务器功能。这工作正常,它简化了我的其余视图,除了错误处理。在Connection Helper类中处理错误的好习惯
大多数情况下,如果我的帮手遇到HTTP 500错误,我希望它显示一条警报,而不显示我的视图中的实现。但是对于某些HTTP 500来说,显示警报是无关紧要的,我希望来自视图的不同行为。
现在,我在Connection Helper中只有很多if子句来处理不同的情况。我不喜欢这个解决方案,因为它不整齐。你有没有想到我可以创建一个整洁的结构来归档我想要做的事情?
示例: 调用具有错误ID的Web服务getItem将返回一个HTTP 500,并向用户显示错误是一种很好的行为。但是调用带有错误ID的deleteItem也会返回一个HTTP 500,但我不想将此错误显示给我的用户,因为它不相关。
我不能确定你的连接助手的整体结构,但你可以有两种方法,比如像makeConnectionWithBlock:和makeConnectionWithBlock:failureBlock :,它的第一个将有你的默认处理,但允许自定义处理程序块的传球为第二种情况。 – shawnwall
我认为这可能是一个整洁的想法!但是传递一个处理程序是否工作正常还是它有隐藏的缺点? – NLemay
不是。查看https://github.com/AFNetworking/AFNetworking,获取基于块的网络操作的杰出示例。 – shawnwall