1、使用UITabBarController構(gòu)建整個系統(tǒng)
a.自定義TabBar以及Controller
b.構(gòu)建燈光、空調(diào)、服務(wù)、設(shè)置控制器并添加
c.在主控制器中加載tabBar所需數(shù)據(jù),以及各子控制器的屬性設(shè)置
注:UIWindows創(chuàng)建、根控制設(shè)置、替換系統(tǒng)并設(shè)置可見。
2、整個系統(tǒng)的文件分組
分組原則:首先按控制器進(jìn)行分組,然后在每個分組中依照MVC設(shè)計(jì)模式進(jìn)一步分組。
注:本地?cái)?shù)據(jù)中心以及接收網(wǎng)絡(luò)的數(shù)據(jù)處理中心,設(shè)計(jì)時采用單例模式,接收網(wǎng)絡(luò)數(shù)據(jù)單獨(dú)開辟線程(使用系統(tǒng)提供的GCD方便)。
3、子控制器詳細(xì)
創(chuàng)建原則:xib-->View-->controller
當(dāng)有多個View時,不再進(jìn)一步創(chuàng)建控制器,創(chuàng)建一個導(dǎo)航的子View,并在controller中添加事件(也可在View中添加事件,并用代理在controller中實(shí)現(xiàn)),控制其他子View的顯示和移除。
controller中所有的數(shù)據(jù)更改都通過數(shù)據(jù)中心,有數(shù)據(jù)相應(yīng)的View,必須先更改數(shù)據(jù)中心的數(shù)據(jù),再通過數(shù)據(jù)中心數(shù)據(jù)更新View上的數(shù)據(jù),View上的操作同樣依照此類,絕對保證數(shù)據(jù)的唯一性,既數(shù)據(jù)中心數(shù)據(jù)唯一。
4、關(guān)于模型
分析每個子View,抽離出屬性,并創(chuàng)建模型,當(dāng)抽取的屬性相同時,可創(chuàng)建同一個模型,保證每個View都有一個對象對應(yīng)。
注:tabBar所使用的數(shù)據(jù)及模型不放在數(shù)據(jù)中心,由單獨(dú)的管理類管理
5、udp指令的發(fā)送
添加AsyncUdpSocket的.h和.m文件,以及相關(guān)的頭文件,添加CFNetwork庫
依照事件中隨用隨創(chuàng)建的原則
注:也可進(jìn)行進(jìn)一步的封裝,封裝指令的轉(zhuǎn)換,計(jì)時器等固定信息
6、指令的接收
接收的方法需要在單獨(dú)的線程中,在程序運(yùn)行期間不斷執(zhí)行,處理的方法需要和接收單獨(dú),每次接收到數(shù)據(jù)都交給新的線程去處理,保證接收線程永遠(yuǎn)在崗。
關(guān)于數(shù)據(jù)處理還在思考中。。。。。。
7、數(shù)據(jù)中心的初始數(shù)據(jù)
程序在啟動時,從數(shù)據(jù)庫中加載相關(guān)數(shù)據(jù),并以此來初始化View,數(shù)據(jù)庫使用ios輕型libsqlite3.0.tbd