因为iOS SDK相对比较底层,所以开发者就得受累多做一些体力活。不过幸运的是,有很多第三方的类库可以用来简化很多不必要的工作。

(1)AFNetworking

目前比较推荐的iOS网络请求组件,默认网络请求是异步,通过block回调的方式对返回数据进行处理。

需要注意的是AFNetworking对服务器返回的ContentType要求比较严格,默认只支持application/json的返回。所以可能需要添加对text/html返回的支持,否则可能无法获得返回数据。

另外就是文件上传,这里推荐使用第二种:

[formData appendPartWithFormData: name:];
[formData appendPartWithFileData: name: fileName: mimeType:];

第一种只需要传入表单名和文件流,源码也是根据文件流获得对应的文件名和文件类型,然后调用第二种方法。但是楼主遇到了使用第一种方法,提交后后台判断为非文件上传,无法获得文件流。还有如果后台是根据文件后缀文件类型,那么第一种也无法使用。

AFNetworking是异步的,也可以使用同步的网络请求方法.

(2).FMDB

对sqlite数据库操作进行了封装,demo也比较简单。

(3).MBProgressHUD

也是iOS项目常用的一个组件,用于显示过渡效果的,比如网络请求之前显示loading,网络结束隐藏loading。建议封装在BaseViewController中,所有ViewController继承就能使用。

(4).MJRefresh

这个是李明杰老师的作品,自己的OC基础就是看他的视频半个周末就基本拿下了。MJRefresh主要用于刷新操作,提供了常用的刷新操作,还有刷新动画,用着很好用。建议把方法封装在BaseViewController中,这样修改刷新操作时,就只需要改动一份。(之前用的旧版MJRefresh,只支持普通的刷新,不支持动画,后来更新后版本变化比较大,旧的方法已经不推荐使用了,所以还是封装基类中使用比较好,方便以后修改)

(5).SDWebImage

也是iOS最常用的一个组件,用户加载网络图片,可以缓存到本地。大概原理时,第一次加载后,会根据url加密作为文件名缓存在本地,如果再次加载图片时,就直接从本地加载。用着也比较简单。这里也分享遇到的一个问题,先从网络加载一张小图,然后小图作为占位图,再从网络加载一张大图。

[imageView sd_setImageWithURL:[NSURL URLWithString:imageURLString] placeholderImage:DefaultPostPic];
[imageView sd_setImageWithURL:[NSURL URLWithString:_bigImageURLStringArray[i]] placeholderImage:imageView.image options:SDWebImageDelayPlaceholder completed:^(UIImage *image, NSError *error, SDImageCacheType cacheType, NSURL *imageURL) {
}];

(6).RDVTabBarController

一个TabBar组件,可以方便设置底部菜单的文字图片,点击效果,小红点提示等。

(7).Toast

类似android的toast提示效果,封装在BaseViewController中,需要的地方进行提示。

(8).XMPPFramework

iOS唯一的xmpp类库,作者在添加了xep-0198协议支持(流管理,用于xmpp断线重连)

(9).TPKeyboardAvoiding

用户键盘弹出自动计算高度,进行屏幕滚动操作。

(10).AMR

做即时通讯的音频处理,目前我们的即时通讯使用的录音文件是m4a,便于web端的音频播放。

(11).TQRichTextView

用于做富文本视图控件显示,用于即时通讯的表情显示,以及资源评论的富文本显示。

(12).CSGrowingTextView

用作即时通讯文本框和评论文本框使用,可以显示多行输入。

(13).MJExtension

也是李明杰老师的作品,用于json转model进行使用,有点类似于java中谷歌的Gson。转换效率据说也很高,使用也比较简单,只要前后台约定好,json直接就转成了model。一个工作多年的iOS朋友说,一个项目主要的是对model层的管理,他推荐的是Mantle。不过MJ这个更轻量级点,用着也更加简单

(14).Masonry

Masonry是一个轻量级的AutoLayout布局框架. 拥有自己的描述语法 采用更优雅的链式语法封装自动布局 简洁明了 并具有高可读性 而且同时支持 iOS 和 Max OS X。

(15).CorePlot

与苹果公司的Core Animation, Core Data, and Cocoa Bindings的技术紧密结合,可以绘制柱状图,折线图,饼图等多种图形,基本可以满足OS X和iOS平台上的大部分绘图需求。

(16).XMPP

现在做个实时聊天,XMPP协议算是很成熟的方案了。XMPPFramework一个很不错的选择,可以直接和OpenFire服务器打交道。项目不大人手不多的话,可以看看这个。

(17).SSToolkit

SSToolkit算是一个不错的工具包,提供各种比如编码、加密、字符串处理等等东西,还提供了一些不错的自定义控件,作者将他在App中实现的各种各样的UI效果做成个代码库,方便其他人使用,并且文档非常齐全。。

(18).GPUImage

GPUImage是一个基于GPU图像和视频处理的开源iOS框架,提供各种各样的图像处理滤镜,并且支持照相机和摄像机的实时滤镜; 基于GPU的图像加速,因此可以加速对实时摄像头视频、电影以及image的滤镜和其它效果处理,并且能够自定义图像滤镜。另外, GPUImage支持ARC。

(19).RegexKitLite

在IOS应用中,经常要输入数据,然输入数据,就要校验数据的合法性,这是我们很自然的联想到web应用中的正则表达式。然而Cocoa并未支持正则表达式。这是我们可以使用第三方工具(RegexKitLite)来实现正则表达式。

cocopods

CocoaPod并不是iOS上的第三方库 而是大名鼎鼎的第三方库的管理工具,在CocoaPod没有出现之前 第三方库的管理是非常痛苦的 尤其是一些大型的库(比如nimbus) 每次对库进行更新 都可能会非常的痛苦CocoaPod的出现解决了这些问题 ,以Framework的方式引入第三方库,极大的节约了集成的时间 而且通吃Objective-C和Swift(Swift上的Cathatage我没有实际用过 但是它的那种集成方式还是比CocoaPod麻烦点)对于一个语言的流行伴随着的就是第三方库的丰富,相应的也会出现依赖库管理的工具。cocoapods之于ObjC,就像maven/gradle 之于java、gem之于ruby那样,cocoapods基本上是创建在在github社区上的,开源并且社区活跃。

关于第三方库,同样不推荐过多使用,如下:
1、消耗时间,一个开源库,拿过来需要仔细考察代码质量,确认是否足够可靠。如果出现问题,需要仔细审查开源库的内部实现。如果这些工作太消耗时间,还不如自己实现。
2、可维护性差。一旦遇到系统升级、API更换,第三方库不能确保不出问题。当出问题后也难以找到人来维护。如果跟进第三方库的改变,仍然容易出现新问题。

iOS之常用第三方库的介绍相关推荐

  1. iOS开发-常用第三方开源框架介绍(你了解的ios只是冰山一角)--(转)

    图像:  1.图片浏览控件MWPhotoBrowser 实现了一个照片浏览器类似 iOS 自带的相册应用,可显示来自手机的图片或者是网络图片,可自动从网络下载图片并进行缓存.可对图片进行缩放等操作.  ...

  2. (转)iOS开发-常用第三方开源框架介绍(你了解的ios只是冰山一角)

    图像: 1.图片浏览控件MWPhotoBrowser  实现了一个照片浏览器类似 iOS 自带的相册应用,可显示来自手机的图片或者是网络图片,可自动从网络下载图片并进行缓存.可对图片进行缩放等操作. ...

  3. iOS开发常用第三方库

    UI 动画 网络相关 Model 其他 数据库 缓存处理 PDF 图像浏览及处理 摄像照相视频音频处理 响应式框架 消息相关 版本新API的Demo 代码安全与密码 测试及调试 AppleWatch ...

  4. Python 常用第三方库及介绍

    环境管理 管理 Python 版本和环境的工具 p:非常简单的交互式 python 版本管理工具.官网 pyenv:简单的 Python 版本管理工具.官网 Vex:可以在虚拟环境中执行命令.官网 v ...

  5. iOS开发-常用第三方开源框架介绍(2)

    2019独角兽企业重金招聘Python工程师标准>>> Frank 自动化测试工具?  superdb 一个Debuger工具 用命令行调试..  iOS-Hierarchy-Vie ...

  6. iOS开发 常用第三方开源框架

    iOS开发-常用第三方开源框架介绍(你了解的ios只是冰山一角) 2015-04-05 15:25 2482人阅读 评论(1) 收藏 举报 开源框架 图像: 1.图片浏览控件MWPhotoBrowse ...

  7. IOS学习:常用第三方库(GDataXMLNode:xml解析库)

    IOS学习:常用第三方库(GDataXMLNode:xml解析库) 解析 XML 通常有两种方式,DOM 和 SAX: DOM解析XML时,读入整个XML文档并构建一个驻留内存的树结构(节点树),通过 ...

  8. iOS开发常用三方库、插件、知名博客

    TimLiu-iOS iOS开发常用三方库.插件.知名博客等等,期待大家和我们一起共同维护,同时也期望大家随时能提出宝贵的意见(直接提交Issues即可). 持续更新... 版本:Objective- ...

  9. 2018年最全iOS开发之第三方库

    最全iOS开发之第三方库 最新增加 EAIntroView 一个灵活的介绍界面,可以用作引导页 UI 下拉刷新 EGOTableViewPullRefresh– 最早的下拉刷新控件. SVPullTo ...

最新文章

  1. mysql游标结果为空
  2. python是基于什么语言开发-2.python是什么编程语言。
  3. Java爬取校内论坛新帖
  4. CentOS7.2.1511 安装Mysql-5.7.13
  5. poxtfix+dovecot+saslauthd+courier-authlib +mysql + extmail 完整虚拟邮箱系统部署
  6. linux 怎么禁止遍历目录,linux下遍历目录功能实现
  7. python常用单词自由且开放_python常用英语单词词汇 unit7
  8. django request对象和HttpResponse对象
  9. Elasticsearch安装及自动同步mysql数据库数据
  10. 携程高管解读Q3财报:海外市场Trip.com流量恢复到去年同期70%
  11. vue多单页面多tab_vue-cli3创建多页面项目
  12. #100天计划# 2013年10月8日
  13. VirtualBox安装及使用说明和虚拟机安装XP系统图文教程
  14. CronTrigger(重要,非常强大)
  15. nmap输出xml转换htm方法
  16. excel中图片导入mysql_把Excel的数据(文字、图片)导入MySQL数据库
  17. 分区表怎么修复【转】
  18. Flowable源码注释(三十二)任务超时作业
  19. 爬取腾讯招聘的招聘信息(简单)
  20. Hadoop集群上的Hive安装时进行初始化元数据信息出现错误HiveSchemaTool:Parsing failed. Reason: Missing required option:

热门文章

  1. 4.5 没有自学,不是大学——《逆袭大学》连载
  2. SSRF 攻击PHP-FPM(FastCGI 攻击):学习总结仅供参考
  3. 管理经济分析05:并购、价格歧视、四个市场、招标与拍卖
  4. 金融科技浪潮下的保理行业发展新热点
  5. VS2017 如何连接mysql数据库依赖的驱动msi
  6. 【JAVA】贪吃蛇的初步实现(三)
  7. 基于STM32的TFT-LCD触摸屏实验(HAL库)
  8. 无线路由的beacon interval
  9. Dynamics 365 on-premises9.0中文版安装SrsDataConnector出错
  10. UE4入门之软件安装