MVC的實(shí)際使用

這里就不在多說(shuō)ios關(guān)于架構(gòu)方面的其他問(wèn)題了,有關(guān)MVP塘匣、MVVM等的問(wèn)題請(qǐng)看我的另一篇文章ios面試題目總結(jié)

程序員的捷徑是什么巷帝,多寫代碼忌卤,多寫代碼,多寫代碼楞泼。

以往的痛點(diǎn)在于開(kāi)始程序員為了節(jié)省通信方面的代碼而將View控件及布局和Model的數(shù)據(jù)獲取及更改驰徊。

一笤闯、controller中

- (void)viewDidLoad {

[super viewDidLoad];

self.cView = [[CooperationView alloc] initWithFrame:self.view.frame];

[self.view addSubview:self.cView]; ? // 加載外部的View。

self.modelAry = [NSMutableArray array];

self.cView.modelAry = self.modelAry; ? // 組織View及Model的通信棍厂。

[self setupRefresh];

}

-(void)setupRefresh{

self.cView.collectionView.mj_header = [MJRefreshNormalHeader headerWithRefreshingTarget:self refreshingAction:@selector(loadNew)]; ?// 調(diào)用外部View.

self.cView.collectionView.mj_header.automaticallyChangeAlpha = YES;

[self.cView.collectionView.mj_header beginRefreshing];

self.cView.collectionView.mj_footer = [MJRefreshAutoNormalFooter footerWithRefreshingTarget:self refreshingAction:@selector(loadMore)];

self.cView.collectionView.mj_footer.hidden = YES;

}

-(void)loadNew{

[self.cView.collectionView.mj_footer endRefreshing];

self.modelAry = [self.c getCooperationItemList]; //self.c是我創(chuàng)建的一個(gè)model對(duì)象颗味,他可以進(jìn)行數(shù)據(jù)的獲取。

self.cView.modelAry = self.modelAry;

[self.cView.collectionView reloadData];

[self.cView.collectionView.mj_header endRefreshing];

[self checkFooterState];

}

二牺弹、View中

@interface CooperationView : UIView

@property(nonatomic, strong) UICollectionView *collectionView; ?// 添加uicollectiongview

@property (nonatomic, strong) NSMutableArray *modelAry; ?// 接受控制器傳入的數(shù)據(jù)來(lái)進(jìn)行加載浦马。

@end

三、model中

@interface Cooperation : NSObject

@property(nonatomic, copy) NSString *product_id;

@property(nonatomic, copy) NSString *number;

@property(nonatomic, copy) NSString *name;

@property(nonatomic, copy) NSString *price;

@property(nonatomic, copy) NSString *inventory;

@property(nonatomic, copy) NSString *image;

@property(nonatomic,assign) NSInteger current_page; ?// 當(dāng)前頁(yè)數(shù)张漂,需要傳遞給控制器來(lái)控制加載更多的行為晶默。

@property(nonatomic,assign) NSInteger total_rows;

-(NSMutableArray*)getCooperationItemList; ?// 不只有屬性,這個(gè)方法從網(wǎng)絡(luò)獲取數(shù)據(jù)航攒。

@end

-(NSMutableArray *)getCooperationItemList{

__block NSMutableArray *modelAry = [NSMutableArray array];

self.current_page = 1;

AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];

manager.requestSerializer = [AFHTTPRequestSerializer serializer];

NSMutableDictionary *params = [NSMutableDictionary dictionary];

params[@"per_page"] = @(10);

params[@"page"] = @(self.current_page);

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];

params[@"token"] = [defaults objectForKey:@"token"];

[manager GET:[kDomainBaseUrl stringByAppendingString:@"product/cooperateProductLists"] parameters:params progress:nil success:^(NSURLSessionDataTask * _Nonnull task, id? _Nullable responseObject) {

self.current_page = [responseObject[@"meta"][@"pagination"][@"current_page"] integerValue];

self.total_rows = [responseObject[@"meta"][@"pagination"][@"total"] integerValue];

NSArray *rows = responseObject[@"data"];

modelAry = [Cooperation mj_objectArrayWithKeyValuesArray:rows];

} failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {

}];

return modelAry; //網(wǎng)絡(luò)請(qǐng)求返回?cái)?shù)據(jù)這里是有問(wèn)題的磺陡,可以使用代理,在成功獲得數(shù)據(jù)后讓控制器進(jìn)行數(shù)據(jù)的傳遞刷新漠畜。

}

好了币他,這是自己的一些簡(jiǎn)單的使用經(jīng)驗(yàn)吧。避免了臃腫的控制器的出現(xiàn)憔狞。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末蝴悉,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子躯喇,更是在濱河造成了極大的恐慌,老刑警劉巖硝枉,帶你破解...
    沈念sama閱讀 217,657評(píng)論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件廉丽,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡妻味,警方通過(guò)查閱死者的電腦和手機(jī)正压,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,889評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)责球,“玉大人焦履,你說(shuō)我怎么就攤上這事〕猓” “怎么了嘉裤?”我有些...
    開(kāi)封第一講書(shū)人閱讀 164,057評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)栖博。 經(jīng)常有香客問(wèn)我屑宠,道長(zhǎng),這世上最難降的妖魔是什么仇让? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,509評(píng)論 1 293
  • 正文 為了忘掉前任典奉,我火速辦了婚禮躺翻,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘卫玖。我一直安慰自己公你,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,562評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布假瞬。 她就那樣靜靜地躺著陕靠,像睡著了一般。 火紅的嫁衣襯著肌膚如雪笨触。 梳的紋絲不亂的頭發(fā)上懦傍,一...
    開(kāi)封第一講書(shū)人閱讀 51,443評(píng)論 1 302
  • 那天,我揣著相機(jī)與錄音芦劣,去河邊找鬼粗俱。 笑死,一個(gè)胖子當(dāng)著我的面吹牛虚吟,可吹牛的內(nèi)容都是我干的寸认。 我是一名探鬼主播,決...
    沈念sama閱讀 40,251評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼串慰,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼偏塞!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起邦鲫,我...
    開(kāi)封第一講書(shū)人閱讀 39,129評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤灸叼,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后庆捺,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體古今,經(jīng)...
    沈念sama閱讀 45,561評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,779評(píng)論 3 335
  • 正文 我和宋清朗相戀三年滔以,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了捉腥。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,902評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡你画,死狀恐怖抵碟,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情坏匪,我是刑警寧澤拟逮,帶...
    沈念sama閱讀 35,621評(píng)論 5 345
  • 正文 年R本政府宣布,位于F島的核電站适滓,受9級(jí)特大地震影響唱歧,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,220評(píng)論 3 328
  • 文/蒙蒙 一颅崩、第九天 我趴在偏房一處隱蔽的房頂上張望几于。 院中可真熱鬧,春花似錦沿后、人聲如沸沿彭。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,838評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)喉刘。三九已至,卻和暖如春漆弄,著一層夾襖步出監(jiān)牢的瞬間睦裳,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,971評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工撼唾, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留廉邑,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,025評(píng)論 2 370
  • 正文 我出身青樓倒谷,卻偏偏與公主長(zhǎng)得像蛛蒙,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子渤愁,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,843評(píng)論 2 354

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