你好,歡迎來到IOS教程網

 Ios教程網 >> IOS編程開發 >> IOS開發綜合 >> iOS開發之mock數據(一)

iOS開發之mock數據(一)

編輯:IOS開發綜合

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數據(一)】的相關資料介紹到這裡,希望對您有所幫助! 提示:不會對讀者因本文所帶來的任何損失負責。如果您支持就請把本站添加至收藏夾哦!

  1. 上一頁:
  2. 下一頁:
蘋果刷機越獄教程| IOS教程問題解答| IOS技巧綜合| IOS7技巧| IOS8教程
Copyright © Ios教程網 All Rights Reserved