(1)AFNetworking
目前比较好用的第三方,默认网络请求是异步,通过block回调的方式对返回的数据处理。
注意事项:AFNetworking对服务器返回的ContentType要求比较严格,默认只支持application/json的返回。需要添加对text/html返回的支持,否则可能无法返回数据
上传文件,推荐使用用第二种:
[formData appendPartWithFormData: neme:];
[formData appendPartWithFileData:name:fileName:mimeType:];
第一种只需要传入表单名和文件流,源码也是根据文件流获得对应的文件名和文件类型;
(2)FMDB
对sqlite数据库操作进行了封装,demo较简单
(3)MBProgressHUD
iOS常用的一个组件,用于显示过渡效果,例如网络请求之前加载菊花(lodaing),之后隐藏菊花(loading)
建议封装成工具类,方便实用
(4)MJRefresh
主要用于刷新操作,提供常用的刷新操作,还有刷新动画,很好用,建议封装起来,在工程中方便实用
(5)SDWebImage
加载网络图片,可以缓存到本地。大概原理:第一次加载后会根据url加密作为文件名缓存到本地,如果在次加载图片时,就直接从本地加载。用着也比较简单
(6)RDVTabBarController
一个TabBar组件,可以方便设置底部菜单的文字图片,点击效果,小红点提示等
(7)Toast
类似android的toast提示效果,封装在BaseViewController中,需要的地方进行提示
(8)XMPPFramwork
iOS唯一的xmpp类库,库中新添加了xep-0198协议支持(流管理,用于xmpp断线重连)
(9)TPKeyboardAvoiding
用户键盘弹出自动计算高度,进行屏幕滚动操作
(10)AMR
做即时通信的音频处理,目前我们的即时通信使用的录音文件时m4a,便于web端的音频播放
(11)TQRichTextView
用于做富文本视图控件显示,用于即时通讯的表情显示,以及资源评论的富文本显示
(12)CSGrowingTextView
用作即时通讯文本框和评论文本框使用,可以显示多行输入
(13)MJExtension
用于json转model进行使用,有点类似于java中谷歌的Gson,转换效率也很高,使用比较简单,只要前后台约定好,json直接就转成model。工作很久的人说,一个项目主要的是对model层的管理,他推荐的是Mantle。不过MJExtension更轻量级,也更简单。