爲了向用戶顯示信息,我的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