RTAPIBaseManager

/*************************************************************************************************/
/* RTAPIBaseManager */
/*************************************************************************************************/
@interface RTAPIBaseManager : NSObject

@property (nonatomic, weak) id<RTAPIManagerApiCallBackDelegate> delegate;
@property (nonatomic, weak) id<RTAPIManagerParamSourceDelegate> paramSource;
@property (nonatomic, weak) id<RTAPIManagerValidator> validator;
@property (nonatomic, weak) NSObject<RTAPIManager> *child; //里面會(huì)調(diào)用到NSObject的方法,所以這里不用id
@property (nonatomic, weak) id<RTAPIManagerInterceptor> interceptor;

/*
baseManager是不會(huì)去設(shè)置errorMessage的凶伙,派生的子類(lèi)manager可能需要給controller提供錯(cuò)誤信息。所以為了統(tǒng)一外部調(diào)用的入口浇辜,設(shè)置了這個(gè)變量。
派生的子類(lèi)需要通過(guò)extension來(lái)在保證errorMessage在對(duì)外只讀的情況下使派生的manager子類(lèi)對(duì)errorMessage具有寫(xiě)權(quán)限唾戚。
*/
@property (nonatomic, copy, readonly) NSString *errorMessage;
@property (nonatomic, readonly) RTAPIManagerErrorType errorType;

@property (nonatomic, assign, readonly) BOOL isReachable;
@property (nonatomic, assign, readonly) BOOL isLoading;

  • (id)fetchDataWithReformer:(id<RTAPIManagerCallbackDataReformer>)reformer;

//盡量使用loadData這個(gè)方法,這個(gè)方法會(huì)通過(guò)param source來(lái)獲得參數(shù)柳洋,這使得參數(shù)的生成邏輯位于controller中的固定位置

  • (NSInteger)loadData;

  • (void)cancelAllRequests;

  • (void)cancelRequestWithRequestId:(NSInteger)requestID;

// 攔截器方法,繼承之后需要調(diào)用一下super

  • (void)beforePerformSuccessWithResponse:(AIFURLResponse *)response;

  • (void)afterPerformSuccessWithResponse:(AIFURLResponse *)response;

  • (void)beforePerformFailWithResponse:(AIFURLResponse *)response;

  • (void)afterPerformFailWithResponse:(AIFURLResponse *)response;

  • (BOOL)shouldCallAPIWithParams:(NSDictionary *)params;

  • (void)afterCallingAPIWithParams:(NSDictionary *)params;

/*
用于給繼承的類(lèi)做重載叹坦,在調(diào)用API之前額外添加一些參數(shù),但不應(yīng)該在這個(gè)函數(shù)里面修改已有的參數(shù)熊镣。
子類(lèi)中覆蓋這個(gè)函數(shù)的時(shí)候就不需要調(diào)用[super reformParams:params]了
RTAPIBaseManager會(huì)先調(diào)用這個(gè)函數(shù),然后才會(huì)調(diào)用到 id<RTAPIManagerValidator> 中的 manager:isCorrectWithParamsData:
所以這里返回的參數(shù)字典還是會(huì)被后面的驗(yàn)證函數(shù)去驗(yàn)證的募书。

假設(shè)同一個(gè)翻頁(yè)Manager绪囱,ManagerA的paramSource提供page_size=15參數(shù),ManagerB的paramSource提供page_size=2參數(shù)
如果在這個(gè)函數(shù)里面將page_size改成10莹捡,那么最終調(diào)用API的時(shí)候鬼吵,page_size就變成10了。然而外面卻覺(jué)察不到這一點(diǎn)篮赢,因此這個(gè)函數(shù)要慎用齿椅。

這個(gè)函數(shù)的適用場(chǎng)景:
當(dāng)兩類(lèi)數(shù)據(jù)走的是同一個(gè)API時(shí),為了避免不必要的判斷启泣,我們將這一個(gè)API當(dāng)作兩個(gè)API來(lái)處理涣脚。
那么在傳遞參數(shù)要求不同的返回時(shí),可以在這里給返回參數(shù)指定類(lèi)型寥茫。

具體請(qǐng)參考AJKHDXFLoupanCategoryRecommendSamePriceAPIManager和AJKHDXFLoupanCategoryRecommendSameAreaAPIManager

*/

  • (NSDictionary *)reformParams:(NSDictionary *)params;
  • (void)cleanData;
  • (BOOL)shouldCache;
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末遣蚀,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子纱耻,更是在濱河造成了極大的恐慌芭梯,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,265評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件膝迎,死亡現(xiàn)場(chǎng)離奇詭異粥帚,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)限次,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,078評(píng)論 2 385
  • 文/潘曉璐 我一進(jìn)店門(mén)芒涡,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人卖漫,你說(shuō)我怎么就攤上這事费尽。” “怎么了羊始?”我有些...
    開(kāi)封第一講書(shū)人閱讀 156,852評(píng)論 0 347
  • 文/不壞的土叔 我叫張陵旱幼,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我突委,道長(zhǎng)柏卤,這世上最難降的妖魔是什么冬三? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,408評(píng)論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮缘缚,結(jié)果婚禮上勾笆,老公的妹妹穿的比我還像新娘。我一直安慰自己桥滨,他們只是感情好窝爪,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,445評(píng)論 5 384
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著齐媒,像睡著了一般蒲每。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上喻括,一...
    開(kāi)封第一講書(shū)人閱讀 49,772評(píng)論 1 290
  • 那天邀杏,我揣著相機(jī)與錄音,去河邊找鬼双妨。 笑死淮阐,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的刁品。 我是一名探鬼主播,決...
    沈念sama閱讀 38,921評(píng)論 3 406
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼浩姥,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼挑随!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起勒叠,我...
    開(kāi)封第一講書(shū)人閱讀 37,688評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤兜挨,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后眯分,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體拌汇,經(jīng)...
    沈念sama閱讀 44,130評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,467評(píng)論 2 325
  • 正文 我和宋清朗相戀三年弊决,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了噪舀。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,617評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡飘诗,死狀恐怖与倡,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情昆稿,我是刑警寧澤纺座,帶...
    沈念sama閱讀 34,276評(píng)論 4 329
  • 正文 年R本政府宣布,位于F島的核電站溉潭,受9級(jí)特大地震影響净响,放射性物質(zhì)發(fā)生泄漏少欺。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,882評(píng)論 3 312
  • 文/蒙蒙 一馋贤、第九天 我趴在偏房一處隱蔽的房頂上張望赞别。 院中可真熱鬧,春花似錦掸掸、人聲如沸氯庆。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,740評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)堤撵。三九已至,卻和暖如春羽莺,著一層夾襖步出監(jiān)牢的瞬間实昨,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,967評(píng)論 1 265
  • 我被黑心中介騙來(lái)泰國(guó)打工盐固, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留荒给,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,315評(píng)論 2 360
  • 正文 我出身青樓刁卜,卻偏偏與公主長(zhǎng)得像志电,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子蛔趴,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,486評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容