IHFKit - iOS基础框架 v1.0
IHFKit是公司的基础框架,使用Framework方式供应用程序使用。其架构如图:
![](https://img.haomeiwen.com/i2417742/f4598a1e974049cf.png)
使用方法
1 : 导入 IHFKit#####
直接将Kit导入到你的工程中,并设置framework search path 和 user search path .
2 : 移除项目中IHFKit带有的第三方框架#####
IHFKit中目前用到AFNetworking ,FMDB和Masonry,如图所示:
![](https://img.haomeiwen.com/i2417742/8b097b8593468d6b.png)
3 : 框架使用
-
. 医疗数据模型
用来统一项目中的通用数据模型,包括请求的网络方式和处理方法,以及本地数据库的存储。
例如(Patient,Nurse,Doctor)等模型,由于很多项目已经进入稳定状态,故不好统一,下一个版本实现。 -
. 通用控件库
通用控件库目的是为了更好的调用一些通用的控件,通常是公司两个以上的项目都使用到的。这些文件在ControlsLibrary下:
控件介绍:
控件名称 | 简介 | 使用介绍 |
---|---|---|
IHFRefresh | 下拉/上划刷新控件,用于tableview, collection view,带有刷新占位符,提示空数据 | http://www.jianshu.com/p/50252f14446b |
IHFSpreadSheetView | 电子表格控件,指定表格行/列及内容,可合并/拆分单元格,可左划删除行,拖拽合并行等。需求来自科研及护理二期护理文书等 | |
IHFPopAnimationView | 弹出视图及自定义弹出特效 | http://www.jianshu.com/p/4cdcf4b9c8f5 |
IHFProgressHUD | 主要是用来针对网络情况给用户的提示控件 | http://www.jianshu.com/p/db7c405ac1fe |
IHFDB | 基于FMDB上的一层封装,主要用来做本地数据库的存储,模型和字典的转换 | http://www.jianshu.com/p/1f6e56ed76de |
IHFCalendar | 可以弹出一个简单,实用的日历! | http://www.jianshu.com/p/ba8a6b275221 |
IHFAlertController | 更容易的使用AlertController,针对AlertView被弃用 | |
IHFMessageNotification | 消息通知,基本Socket对消息进行推送,用户必须上线(登录时候调用) | 使用方法见IHFMessageNotification.h,连接和服务器和登录 |
- . 网络请求
网络请求是借助AFNetworking进行数据的请求。
App可以使用创建一个自己的业务层间接来调用,也可以直接使用网络请求层的API来发送。(见IHFNetwork.h)
所有请求都需要封装成IHFNetworkRequest的子类,包括请求的类型,地址,参数等均可自定义。
需要注意的是registerHostIP这个方法是为了方便使用IHFKit的App简化请求的,可以把后台服务器的IP地址、端口号一次性注册,这样同一个module之后发送http请求时就可以不用附带这些信息。如果你的App有不同与你注册的Ip,IHFNetworkRequest有为个specialURL,可以修改这次请求的URL的IP和端口。当然你要传给后台的参数给可以写在IHFNetworkRequest的子类属性,我们会将你的这些参数自动转换成字典,传给后台。
请求到的数据可以根据IHFDB中带有的字典和模型的转换。
假设同一个App有多个动态库的模块使用到了IHFKit(举个栗子,移动医生可以直接使用IHFKit, 其中病历模块如果是一个动态库的话,也可能独立使用IHFKit;医嘱模块也是这样),也不会有问题,IHFKit内部会对调用registerHostIP的模块及其注册的信息做一对一关联。。。。
- . 数据库存储
数据库存储是借助IHFDB进行本地数据的操作。详细适应见介绍。
SQLiteUpgrade:预留用于缓存版本更新的迁移接口(尚未与缓存框架接通)
- . 消息通知
根据IHFMessageNotification进行消息通知,用户必须要根据主机IP和端口连接服务,然后再登录。就可以发送消息通知和接收到消息通知。
- . 错误异常处理
1.IHFErrorCode用于定义和显示IHEFE统一的错误码
2.UncaughtExceptionHandler用于捕获未处理的异常,不过实际情况是如果捕获的异常发生在主线程,而捕获异常后又试图弹出GUI界面,会导致界面锁死。所以在实际使用中最好在UncaughtExceptionHandler只做逻辑上的异常处理,而不要发生用户交互的行为。
- . 工具类介绍
类型 | 名称 | 大致介绍 |
---|---|---|
Tool | IHFBaseTool | 基本工具类,调用一些经常使用的方法 |
IHFBaseTool+AppUpgrading | 检测App的版本和更新 | |
IHFBaseTool+UncaughtException | 注册异常的捕获,防止闪退 | |
IHFViewTool | 视图工具类 | |
IHFValidateTool | 数据检验工具类,可以检验一些信息,比如手机信息 | |
IHFFileTool | 文件/目录操作工具类 | |
IHFDeviceTool | 设备系统、硬件信息工具类 | |
category | UIView+IHF | 简化了View中frame的调用 ,比如Width,height |
UIImage+IHF | 将图片拉伸或者画圆角,模糊等 | |
NSDate+IHF | 时间的处理,时间跟字符的转换 | |
NSString+IHF | 字符串的处理 | |
NSDictionary+IHF | 字典处理,多用于对网络请求的一些处理 | |
NSArray+IHF | 数组处理,防止数组越界 |