IOS開發之mock數據(一)。在大團隊開發的過程中,很多時候後台往往先定義好接口文檔,然後後台去開發接口,前端開發app。並行開發,提高開發效率。下面給大家分享一下團隊中使用的mock機制。
mock數據有兩種方式, 一種是後台建立mock數據服務器,另一種是app開發者,在項目中自己維護。目前我們采用的是放在自己的項目中來維護的。
mock要實現的目標 面向AOP編程開發由於mock數據,在接口聯調完畢後就要被拋棄掉,如果數據是是散落在代碼中的話,我們就要一點一點的移除,如果不移除的話後期可能會影響到我們的代碼邏輯,很不友好。
開關機制在我們的工程中,有一個開關,可以控制是否打開mock數據機制,進行mock 操作。
個性化操作在我麼開發的過程中,我們會存在一部分接口需要使用mock數據,也有一部分接口不需要mock數據,這個時候要求我們能夠做到個性話的操作,允許對單個接口進行是否進行mock操作進行處理。
具體實現經過分析,我這裡先來說說如何使用面向AOP編程的思想來對接口進行mock操作。NSURLProtocol IOS開發的利器,幾乎可以攔截應用內所有的網絡請求(WKWebview除外)
NSURLProtocol 可以實現:
1)重定向網絡請求
2)忽略網絡請求,使用本地緩存
3)自定義網絡請求的返回結果
4)一些全局的網絡請求設置
我們這裡主要是使用自定義網絡請求的返回結果的功能。
使用前要進行相關的注冊
@interface JKURLProtocol : NSURLProtocol @end - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { //注冊protocol [NSURLProtocol registerClass:[JKURLProtocol class]]; return YES; }
常用的幾個方法如下:
+canInitWithRequest: //是否處理對應的reuest,默認為NO
+canonicalRequestForRequest: +(NSMutableURLRequest*)redirectHostInRequset:(NSMutableURLRequest*)request //通常該方法你可以簡單的直接返回request,但也可以在這裡修改request,比如添加header,修改host等
+requestIsCacheEquivalent:toRequest: //主要判斷兩個request是否相同,如果相同的話可以使用緩存數據,通常只需要調用父類的實現。
-startLoading -stopLoading //這兩個方法主要是開始和取消相應的request,而且需要標示那些已經處理過的request。以上就是IOS開發之mock數據(一)的全文介紹,希望對您學習和使用iOS開發有所幫助.[db:作者簡介][db:原文翻譯及解析]
【iOS開發之mock數據(一)】的相關資料介紹到這裡,希望對您有所幫助! 提示:不會對讀者因本文所帶來的任何損失負責。如果您支持就請把本站添加至收藏夾哦!