IHFKit是公司的基礎(chǔ)框架,使用Framework方式供應(yīng)用程序使用。其架構(gòu)如圖:
使用方法
1 : 導(dǎo)入 IHFKit#####
直接將Kit導(dǎo)入到你的工程中,并設(shè)置framework search path 和 user search path .
2 : 移除項(xiàng)目中IHFKit帶有的第三方框架#####
IHFKit中目前用到AFNetworking ,FMDB和Masonry,如圖所示:
3 : 框架使用
. 醫(yī)療數(shù)據(jù)模型
用來(lái)統(tǒng)一項(xiàng)目中的通用數(shù)據(jù)模型,包括請(qǐng)求的網(wǎng)絡(luò)方式和處理方法,以及本地?cái)?shù)據(jù)庫(kù)的存儲(chǔ)。
例如(Patient,Nurse,Doctor)等模型,由于很多項(xiàng)目已經(jīng)進(jìn)入穩(wěn)定狀態(tài),故不好統(tǒng)一,下一個(gè)版本實(shí)現(xiàn)。. 通用控件庫(kù)
通用控件庫(kù)目的是為了更好的調(diào)用一些通用的控件,通常是公司兩個(gè)以上的項(xiàng)目都使用到的。這些文件在ControlsLibrary下:
控件介紹:
控件名稱 | 簡(jiǎn)介 | 使用介紹 |
---|---|---|
IHFRefresh | 下拉/上劃刷新控件,用于tableview, collection view,帶有刷新占位符,提示空數(shù)據(jù) | http://www.lxweimin.com/p/50252f14446b |
IHFSpreadSheetView | 電子表格控件,指定表格行/列及內(nèi)容,可合并/拆分單元格,可左劃刪除行,拖拽合并行等。需求來(lái)自科研及護(hù)理二期護(hù)理文書(shū)等 | |
IHFPopAnimationView | 彈出視圖及自定義彈出特效 | http://www.lxweimin.com/p/4cdcf4b9c8f5 |
IHFProgressHUD | 主要是用來(lái)針對(duì)網(wǎng)絡(luò)情況給用戶的提示控件 | http://www.lxweimin.com/p/db7c405ac1fe |
IHFDB | 基于FMDB上的一層封裝,主要用來(lái)做本地?cái)?shù)據(jù)庫(kù)的存儲(chǔ),模型和字典的轉(zhuǎn)換 | http://www.lxweimin.com/p/1f6e56ed76de |
IHFCalendar | 可以彈出一個(gè)簡(jiǎn)單,實(shí)用的日歷! | http://www.lxweimin.com/p/ba8a6b275221 |
IHFAlertController | 更容易的使用AlertController,針對(duì)AlertView被棄用 | |
IHFMessageNotification | 消息通知,基本Socket對(duì)消息進(jìn)行推送,用戶必須上線(登錄時(shí)候調(diào)用) | 使用方法見(jiàn)IHFMessageNotification.h,連接和服務(wù)器和登錄 |
- . 網(wǎng)絡(luò)請(qǐng)求
網(wǎng)絡(luò)請(qǐng)求是借助AFNetworking進(jìn)行數(shù)據(jù)的請(qǐng)求。
App可以使用創(chuàng)建一個(gè)自己的業(yè)務(wù)層間接來(lái)調(diào)用,也可以直接使用網(wǎng)絡(luò)請(qǐng)求層的API來(lái)發(fā)送。(見(jiàn)IHFNetwork.h)
所有請(qǐng)求都需要封裝成IHFNetworkRequest的子類,包括請(qǐng)求的類型,地址,參數(shù)等均可自定義。
需要注意的是registerHostIP這個(gè)方法是為了方便使用IHFKit的App簡(jiǎn)化請(qǐng)求的,可以把后臺(tái)服務(wù)器的IP地址、端口號(hào)一次性注冊(cè),這樣同一個(gè)module之后發(fā)送http請(qǐng)求時(shí)就可以不用附帶這些信息。如果你的App有不同與你注冊(cè)的Ip,IHFNetworkRequest有為個(gè)specialURL,可以修改這次請(qǐng)求的URL的IP和端口。當(dāng)然你要傳給后臺(tái)的參數(shù)給可以寫(xiě)在IHFNetworkRequest的子類屬性,我們會(huì)將你的這些參數(shù)自動(dòng)轉(zhuǎn)換成字典,傳給后臺(tái)。
請(qǐng)求到的數(shù)據(jù)可以根據(jù)IHFDB中帶有的字典和模型的轉(zhuǎn)換。
假設(shè)同一個(gè)App有多個(gè)動(dòng)態(tài)庫(kù)的模塊使用到了IHFKit(舉個(gè)栗子,移動(dòng)醫(yī)生可以直接使用IHFKit, 其中病歷模塊如果是一個(gè)動(dòng)態(tài)庫(kù)的話,也可能獨(dú)立使用IHFKit;醫(yī)囑模塊也是這樣),也不會(huì)有問(wèn)題,IHFKit內(nèi)部會(huì)對(duì)調(diào)用registerHostIP的模塊及其注冊(cè)的信息做一對(duì)一關(guān)聯(lián)。。。。
- . 數(shù)據(jù)庫(kù)存儲(chǔ)
數(shù)據(jù)庫(kù)存儲(chǔ)是借助IHFDB進(jìn)行本地?cái)?shù)據(jù)的操作。詳細(xì)適應(yīng)見(jiàn)介紹。
SQLiteUpgrade:預(yù)留用于緩存版本更新的遷移接口(尚未與緩存框架接通)
- . 消息通知
根據(jù)IHFMessageNotification進(jìn)行消息通知,用戶必須要根據(jù)主機(jī)IP和端口連接服務(wù),然后再登錄。就可以發(fā)送消息通知和接收到消息通知。
- . 錯(cuò)誤異常處理
1.IHFErrorCode用于定義和顯示IHEFE統(tǒng)一的錯(cuò)誤碼
2.UncaughtExceptionHandler用于捕獲未處理的異常,不過(guò)實(shí)際情況是如果捕獲的異常發(fā)生在主線程,而捕獲異常后又試圖彈出GUI界面,會(huì)導(dǎo)致界面鎖死。所以在實(shí)際使用中最好在UncaughtExceptionHandler只做邏輯上的異常處理,而不要發(fā)生用戶交互的行為。
- . 工具類介紹
類型 | 名稱 | 大致介紹 |
---|---|---|
Tool | IHFBaseTool | 基本工具類,調(diào)用一些經(jīng)常使用的方法 |
IHFBaseTool+AppUpgrading | 檢測(cè)App的版本和更新 | |
IHFBaseTool+UncaughtException | 注冊(cè)異常的捕獲,防止閃退 | |
IHFViewTool | 視圖工具類 | |
IHFValidateTool | 數(shù)據(jù)檢驗(yàn)工具類,可以檢驗(yàn)一些信息,比如手機(jī)信息 | |
IHFFileTool | 文件/目錄操作工具類 | |
IHFDeviceTool | 設(shè)備系統(tǒng)、硬件信息工具類 | |
category | UIView+IHF | 簡(jiǎn)化了View中frame的調(diào)用 ,比如Width,height |
UIImage+IHF | 將圖片拉伸或者畫(huà)圓角,模糊等 | |
NSDate+IHF | 時(shí)間的處理,時(shí)間跟字符的轉(zhuǎn)換 | |
NSString+IHF | 字符串的處理 | |
NSDictionary+IHF | 字典處理,多用于對(duì)網(wǎng)絡(luò)請(qǐng)求的一些處理 | |
NSArray+IHF | 數(shù)組處理,防止數(shù)組越界 |