2015-02-10 52 views
2

TL; DR是否有整個應用程序,只需創建一個新的客戶端類只是你繼承AFHTTPSessionManager方式使用NSURLSession的任何常見的模式?子類NSURLSession


我喜歡用AFNetworking的原因很多,如果我看不出有什麼禁忌我用它與樂趣,但有時我有一個相對簡單的任務,以實現和AFNetworking似乎是矯枉過正或者我只是需要避免第三方依賴。

在我腦海中,我意識到來自蘋果的傢伙給我們提供了一個很酷的東西叫NSURLSession,它聽起來像是一個完美的靈魂,對於很多情況下,但當我明星閱讀有關在項目中使用它,以及我想回來到AFNetworking讓我解釋爲什麼...

當你計劃創建一個自定義類使用AFNetworking您只需創建的AFHTTPSessionManager一個子類(當然,如果你正在處理的HTTP)和簡單的返回單身您的網絡任務,等等...(如果你不知道故事的其餘部分,請檢查this great tutorial
簡單,對吧?
但是如果我想以相同的方式子類NSURLSession呢?那麼,我仍然在互聯網上尋找解決方案,但目前爲止沒有運氣......每個教程,每篇文章,每個帖子都陳述了您在視圖控制器中實例化NSURLSession,並且如果需要的話,您可以使用它。但是,如果我想在整個應用程序中使用此客戶端,會發生什麼情況?

+0

爲什麼你需要一個子類?你想通過繼承來實現什麼? – jtbandes 2015-02-10 06:58:24

+0

@jtbandes我想創建一個類,我可以在我的應用程序的任何地方使用它來創建對外部API的調用。我不想把''NSURL..'的樣板文件放在任何地方,我想調用更多像'fetchAllUsers:'這樣的簡單方法。 – cojoj 2015-02-10 07:13:51

回答

2

對於您描述的用例,將一個具有NSURLSession屬性的單例作爲屬性比子類更簡單。見Prefer composition over inheritance?

每一個教程,每一篇文章,每一個崗位的狀態,你在你的視圖控制器實例NSURLSession,如果需要,你使用它,期限。

視圖控制器通常應該沒有任何NSURL…類,因爲視圖控制器應該被告知要顯示什麼,它不應該問。它遠離視圖控制器應該做的事情。

+0

所以你要告訴我的是在這裏放棄繼承的想法,並創建一個普通的類,這將是一個單身人士。這使得sens! – cojoj 2015-02-10 07:21:22