iOS *** 作系统除过最底层的内核,其上总共分为四层,从上到下依次是:
最上层的Cocoa Touch层直接和用户进行交互,比如最常用的UIKit中的各种控件就属于此层,以及最核心的基础服务Foundation框架,以及地图MapKit等。
Media媒体层为上层的Cocoa Touch提供画图和多媒体服务,比如文字、图像、音视频处理等。
核心服务层为Application提供基础的系统服务,比如数据存储框架Core Data、安全服务Security、网络访问CFNetwork等,以及最重要的Foundation和CoreFoundation,它们是Objective-C的核心。
核心 *** 作系统层为其上所有层提供最基础的服务,比如内存管理、线程管理、本地认证、文件系统、电源管理等,是底层的硬件和上层各种服务之间的接口。
主项目中的分层主要包含四个模块,Main(主要)、Expand(扩展)、Resource(资源)、Vender(第三方),还有本项目是有多个Tag,用于区分不同的版本,比如本地环境测试版、产品版,主要是通过Tag来区分,不同的标识对应不同的连接地址;当然也可以设置其它不同的内容;
21 Main(主要)模块的内容
此模块主要目的是为了存放项目的页面内容,比如MVC的内容,Base(基类)用于存放一些公共的内容,其它功能模块的提取,方便继承调用;在本实例中已经在BaseController整理的一个公用的ViewController
22 Expand(扩展)模块的内容
此模块主要包含 Const、Macros、Tool、NetWork、Category、DataBase六个子模块;
221 Macros (宏) 主要存放宏定义的地方,这边有两个宏文件,Macrosh主要是项目的一些主要宏,比如字体、版本、色值等,而ThirdMacrosh主要用于存放一些第三放SDK的key值;
222 Tool(工具类)主要存放一些常用的类,此处Logger用于存放日志的封装帮助类,Reachability用于存放判断网络状态的帮助类;
223 Network(网络)这边主要用到YTKNetwork 是猿题库 iOS 研发团队基于 AFNetworking 封装的 iOS 网络库,这边是对它进行一些修改,为了满足不同Tag及不同的功能模块可能访问不同URL的要求;
224 Category(分类)主要用到Git上面iOS-Categories分类的内容,多创建一个Other用于存放平时要扩展的分类;
23 Resource(资源)模块的内容
资源模块主要包含三方面,Global( 全局 )、Image( )、Plist( 配置文件 );
231 Global用于存放项目一些全局的内容,包含启动项的内容LaunchScreenstoryboard、头部引用PrefixHeaderpch、语言包Filestrings
232 Image用于存放资源,可以根据功能模块进行再分不同的xcassets文件;
233 Plist用于存放plist文件,主要是本项目中会创建多个的Tag,而每个Tag都会有自个的plist文件进行管理,所以统一存放方便管理;
24 Vender(第三方)模块的内容
虽然项目中已经用Pod来管理第三方插件,但对于一些可能要进行修改的第三方可以存放在这边,本实例中引用的几个比较常用的第三方插件,简单介绍其中的几个,GVUserDefaults是对UserDefaults的封装,简单就可以用于存取 *** 作;JDStatusBarNotification是在状态栏提示效果的插件;ActionSheetPicker底部d出如时间选择、选项的插件;QBImagePickerController是照片选择插件,支持多选并可以设置最多选择张数;
iOS图表库Charts使用(不常见但很实用的属性)
至于Charts的普通demo方法请参见其它文章,本文主要讲述Charts不常见但很实用的属性。(关于集成的方法参见我的上一篇文章: iOS图表库Charts集成与使用 )
普通demo文章: iOS在OC项目中集成Charts绘制图表框架 这个是王雷大神的博客,对charts讲解很详细
OC调用Charts绘制图表--BarChartView
这个是李大宝(群主)的博客对于chart的理解,个人认为他是个逗逼,
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)