Ios 專案從頭開發 MVVM模式 三

2021-06-26 19:23:23 字數 2348 閱讀 4508

1.話說,本來想做個聚合查詢功能,但是我的重點想研究xmpp聊天功能。所以使用mvvm模式做了完全模式51job主介面的頁面。

2.首先給大家看我執行起來的介面。

3.介面很簡單,做這個介面主要是為了比較mvvm模式和mvc模式之間的區別。

4.這個介面的結構是下邊這張

與mvc相比,我多了乙個viewmodel檔案。

mvc之前是把業務邏輯和資料放在viewcontroller裡邊,邏輯複雜的話,別人維護起來很麻煩。

我就不貼viewcontroller的了,我把這個**上傳給大家,大家可以看看,和mvc相比,是不是很容易維護,**層級會好一些。明天開始研究iosxmpp的聊天功能,所以會暫停一段時間更新。

沒辦法,看來只能貼**了,我只貼viewcontroller和viewmodel的**,大家可以比較下。

這是viewcontroller

#import

@class

mtsonlineviewmodel;

@inte***ce mtsonlineviewcontroller :uitableviewcontroller

@property(strong,nonatomic)

mtsonlineviewmodel

*onlineviewmodel;

@end

#import "mtsonlineviewcontroller.h"

#import "mtsonlineviewmodel.h"

#import "mtsonlinemenucell.h"

@inte***ce

mtsonlineviewcontroller()

@end

@implementation mtsonlineviewcontroller

#pragma mark - uiviewcontroller overrides

- (void)awakefromnib

- (void)viewdidload];}

[super

self

.onlineviewmodel.active=

yes; }

#pragma mark - table view

- (nsinteger)tableview:(uitableview *)tableview numberofrowsinsection:(nsinteger)section

- (uitableviewcell *)tableview:(uitableview *)tableview cellforrowatindexpath:(nsindexpath *)indexpath

#pragma mark --cell delegate

-(void)pressmenubutton:(mtsmenutype)type title:(nsstring*)title;

@end

這是viewmodel

#import "rvmviewmodel.h"

@inte***ce mtsonlineviewmodel :rvmviewmodel

@property (nonatomic,readonly) racsignal *updatedcontentsignal;

@property(nonatomic,readonly)

nsmutablearray

*tabledatasource;

-(nsinteger)numberofitems;

@end

#import "mtsonlineviewmodel.h"

#import "mtsmenumodel.h"

@inte***ce

mtsonlineviewmodel()

@property (nonatomic,strong) racsubject *updatedcontentsignal;

@property (nonatomic,strong) nsmutablearray *tabledatasource;

@end

@implementation mtsonlineviewmodel

-(instancetype)init ];

return self; }

#pragma mark - public methods

-(nsinteger)numberofitems

-(void)menudatasource

@end

iOS設計模式 MVVM

原文 如果你已經開發ios應用程式有一段時間了,那麼你可能聽說過mvvm或者mvc 設計模式 這是你構建ios應用程式的標準模式。然而,最近,我越來越厭倦mvc的一些缺點了。在這篇文章中,我要梳理一下什麼是mvc,及其缺點,並告訴你乙個新的方式來組織你的應用程式 那就是 mvvm。model vie...

剖析iOS設計模式MVVM

眾所周知,物件導向,是由面向過程演變而來,於是有了設計模式。客服端程式設計離不開mvc model view controller 設計模式,由於複雜頁面 如微博列表,存在使用者表頭,內容cell存在多型及變高,多種操作交雜的情況 把頁面展示,及操作都放在viewcontroller裡進行管理,勢必...

Ios 從無到有專案 MVVM模式 兩

3.xmpp聊天功能,主要用到xmpp協議。框架我們用ios的xmppframework master這個開源專案。具體的功能,我會再具體考慮。5.介面的話,有3種方式來做,xib,storyboard這3種方式。ipad我選擇的xib來做的,身份管家的專案我選擇 xib來做。iphone的專案我選...