处理Connection Helper类中的错误的好习惯

时间:2012-12-26 20:04:18

标签: objective-c architecture nsurlconnection

要向用户显示信息,我的iOS应用程序必须调用许多不同的Web服务。这就是为什么我创建了一个Connection Helper类,它使用NSURLConnection来调用我的服务器函数。这工作正常,它简化了我的其余视图,除了错误处理。

大多数情况下,如果我的助手遇到HTTP 500错误,我希望它在我的视图中没有显式实现时显示警告。但对于某些HTTP 500,显示警报是无关紧要的,我希望从视图中获得不同的行为。

现在,我的Connection Helper中只有很多if子句来处理不同的情况。我不喜欢这个解决方案因为它不整洁。您是否知道我可以创建一个整洁的结构来存档我想要做的事情?

示例: 使用错误的ID调用Web服务getItem将返回HTTP 500,并向用户显示错误是一种很好的行为。但是使用错误ID调用deleteItem也会返回HTTP 500,但我不想向用户显示此错误,因为它无关紧要。

1 个答案:

答案 0 :(得分:0)

Shawnwall的解决方案可能是解决这个问题的好方法。但我找到了另一个我更舒服的人。

我的连接助手类确实声明了一个委托ConnectionHelperDelegate。在这个课程中,我创建了一个可选功能:

- (BOOL) connectionDidFailWithHttp500:(NSString *) errorMessage;

然后,如果我的代表有这个功能,我称之为:

if([self.delegationListener respondsToSelector:@selector(connectionDidFailWithHttp500:)]){...}

如果委托返回true,则表示它将处理剩余的工作。如果它返回false,它会告诉ConnectionHelper为它执行此操作。