mvc 架構問題:
使用者**,業務邏輯,ui ,內部方法,**封裝導致:
①vc**過於繁重(封裝)
②**耦合性過高(解耦)
1.tableview優化之封裝(初始化方法和**方法封裝)
hkdatasource.h
#import#import
typedef
void(^cellconfigure)(id cell , id model, nsindexpath *indexpath);
@inte***ce hkdatasource : nsobject@property (nonatomic, strong) nsmutablearray *dataarray ;
//自定義初始化方法
- (id)initwithidentifier:(nsstring *)identifier configureblock:(cellconfigure)configure;
//cellidentifier
@property (nonatomic, strong) ibinspectable nsstring *cellidentifier ;
//cellconfigure
@property (nonatomic, copy) cellconfigure cellconfigure ;
- (void)adddataarray:(nsarray*)array;
- (id)modelsatindexpath:(nsindexpath*)indexpath;
@end
hkdatasource.h
#import"hkdatasource.h
"@implementation
hkdatasource
- (id)initwithidentifier:(nsstring *)identifier configureblock:(cellconfigure)configure
return
self;
}-(void)adddataarray:(nsarray *)array
if (self.dataarray.count>0
) [self.dataarray addobjectsfromarray:array];
}- (id)modelsatindexpath:(nsindexpath*)indexpath
-(nsinteger)tableview:(uitableview *)tableview numberofrowsinsection:(nsinteger)section
-(uitableviewcell *)tableview:(uitableview *)tableview cellforrowatindexpath:(nsindexpath *)indexpath
return
cell;
}@end
使用:
static nsstring * reuseid = @"reuseid";
@inte***ce
viewcontroller ()
@property (nonatomic, strong) uitableview *tableview;
@property (nonatomic, strong) nsmutablearray *dataarray ;
@property (nonatomic, strong) hkdatasource *datasource ;
@end
@implementation
viewcontroller
- (void
)viewdidload ];
[self loaddata];
[self.datasource adddataarray:self.dataarray];
self.view.backgroundcolor =[uicolor whitecolor];
[self.view addsubview:self.tableview];
self.tableview.datasource =self.datasource;
}- (void
)loaddata ,
@,@,
@];for (int i = 0; i)
}-(uitableview *)tableview
return
_tableview;
}@end
2.cell耦合性強(解耦)
mvctableviewcell * cell
cell.model = _dataarray[indexpath.row].
cell 內部(setmodel:+ui賦值)[耦合性太強…]
3.cell復用 ui改變了->model不變(雙向繫結)
self.model.num = self.numlabel.text;
iOS MVC 架構模式
2 view 檢視物件 3 controller 控制器物件 直到進行單元測試的時候才會發現問題越來越明顯。因為你的 viewcontroller 和 view 是緊密耦合的,對它們進行測試就顯得很艱難 你得有足夠的創造性來模擬 view 和它們的生命週期,在以這樣的方式來寫 view contro...
IOS MVC模式初探
在進行ios程式開發的時候,若對mvc設計模式不了解的話,是很難做出良好效能的程式.現將作者本人對於mvc設計模式的一些 粗淺看法記載餘下,希望能對讀者有所幫助.1 模型 在模型物件中封裝資料和基本行為 運算元據的邏輯 模型物件可以復用,因為它表示的知識適用與特定的問題領域.只要載入的是包含有應用程...
iOS MVC設計模式詳解
m model 模型層 負責儲存資料 繼承自 nsobject v view 檢視層 負責向使用者展示資料,繼承自 uiview c controller 控制器層 負責將 model 層的資料傳遞到 view 層,繼承 uiviewcontroller model層 負責定義model的屬性 vi...