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的專案我選...