如果可以的話图筹,我希望最近每周能更新兩篇關(guān)于架構(gòu)的東西。
從最基礎(chǔ)的MVC開始
M:
通常談?wù)撃P停J(rèn)為模型是數(shù)據(jù)的載體远剩,Model == Data.
在某些其他語言當(dāng)中可能是這樣的扣溺,但是在OC中,Model更適合作為一個數(shù)據(jù)結(jié)構(gòu)來使用瓜晤。
不參與任何處理锥余,只是一個基于NSObject的類,在.h中定義了所需要的key,value痢掠。如果服務(wù)端傳來的key描述不準(zhǔn)確驱犹,可以在.m中使用MJ_Extention中對于NSObject的分類對key名稱進(jìn)行更改。
V:
通常是爭議最小的一個部分足画,繪制UI雄驹,接收用戶操作,接收控制器的操作淹辞,就這些了医舆。雖然view與data聯(lián)系最為緊密,但是這些data都是引用的桑涎。view可能有一些自己的屬性彬向,但是這些屬性一定是與業(yè)務(wù)無關(guān)的。
view可以引用data攻冷,但是不能改變data娃胆。任何在view中操作data的處理都將導(dǎo)致數(shù)據(jù)混亂。
C:
控制器最主要的事情有兩個
1.加載view等曼,傳data給view
2.加載data里烦,改變data
除了這兩個之外,他還有處理事件禁谦,監(jiān)聽等一些其他亂七八糟的操作胁黑,當(dāng)控制器變得龐大以后,從亂七八糟的東西開始州泊,將這些東西分離出去丧蘸。