第三方框架
1.常用第三方的底层实现原理(SDWebImage AFNetworking EGORefresh)
其实是有沙盒缓存机制,主要由三块组成
1.内存图片缓存
2.内存操作缓存
3.磁盘沙盒缓存
4.列举一下常用的第三方框架
答:我在做开发的过程中曾经用过以下第三方框架:
(1)AFNetworking网络请求库
(2)SDWebImage网络图片加载
(3)FMDB数据库
(4)Masonry自动布局
(5)UmengSDK/Share SDK分享
(6)融云/环信 即时通信
(7)ZBar/ZXing二维码扫描和生成
(8)MBProgressHUD风火轮
(9)GTMBase64 base64编码解码
(10)MJRefresh下拉刷新,上拉加载
(11)百度/高德地图SDK
5.MJRefresh原理
答:给UISCrollView添加了分类,在分类中,根据scrollView的contentOffset进行判断方向和偏移量,当偏移量到某一个临界值的时候,开始切换header或者footer的状态,以呈现不同的UI,当偏移量大于临界值并松开手的时候,执行block回调或者target..action的方法,主要在block或者target..action中进行网络请求,请求结束后,调用endRefresh方法,再次更改header或者footer的状态,使他们回到初始状态
关于常用的手码约束的第三方框架
有Masonry和UIView+Autolayout
框架地址是:
https://github.com/Masonry/Masonry
https://github.com/smileyborg/UIView-AutoLayout
UIView+Autolayout框架
这个相对于masonry,是个轻量级的框架易于上手,里面一共也就两个文件。也非常好用,都是用auto开头。适用于约束不经常改变的项目
Masonry框架
这个框架是重量级的里面好多文件,难于上手,但是用熟练了的话比上面那个牛X,适合于约束要经常改变的项目。
写出常用的第三方框架
Reachability检测网络连接用来检查网络连接是否可用:包括WIFI和WWAN(3G/EDGE/CDMA等)两种工作模式。
MBProgressHUD提示效果 支持各种状态加载的提示效果,以及带进度的提示效果。
SDWebImage图片异步加载及缓存SDWebImage用于异步下载网络上的图片,并支持对图片的缓存等。
XMPP现在做个实时聊天,XMPP协议算是很成熟的方案了。XMPPFramework一个很不错的选择,可以直接和OpenFire服务器打交道。
AFNetworking网络请求
FMDB数据库
Masonry纯代码添加约束
iOS知名第三方框架和流行APP们所用的第三方框架小结
http://www.mamicode.com/info-detail-935799.html
6)不使用第三方,如何做下拉刷新,加载
UITableView本身是一个UIScrollView,所以UITableView可以实现UIScrollView的代理方法。上拉和下拉刷新无非是UIScrollView偏移到一定程度调用刷新方法。 实现- (void)scrollViewDidScroll:(UIScrollView*)scrollView代理方法即可。
http://www.open-open.com/lib/view/open1390609384992.html
http://doc.okbase.net/ZeroHour/archive/119346.html
UITableView是继承scrollview的,当你下拉结束的时候会走scrollview的回调,scrollViewDidEndDragging,然后在这个回调中,可以判断是否达到下拉的位置,然后做你该做的处理,比如刷新列表,加载数据等等
23.AFNetworking内部实现原理
http://www.th7.cn/Program/IOS/201503/405717.shtml
40.AFNetworking新版本和以前版本的区别,NSURLSession使用
(1)NSURLConnection的API已废弃
弃用的类
下面的类已从AFNetworking 3.0中废弃:
•AFURLConnectionOperation
•AFHTTPRequestOperation
•AFHTTPRequestOperationManager
修改的类
下面的类包含基于NSURLConnection的API的内部实现。他们已经被使用NSURLSession重构:
•UIImageView+AFNetworking
•UIWebView+AFNetworking
•UIButton+AFNetworking
(2)AFHTTPRequestOperation核心代码
与NSURLConnection对象不同,每个共享应用范围的设置如会话管理、缓存策略、Cookie存储以及URL协议等,这些NSURLSession对象都可以单独进行配置。使用特定的配置来初始化会话,它可以发送任务来获取数据,并上传或下载文件。
在AFNetworking 2.0中,使用AFHTTPRequestOperation,有可能创建一个没有额外开销的独立的网络请求来获取数据。NSURLSession则需要更多的开销,为了获得所要请求的数据。
(3)UIKit的迁移
图片下载已经被重构,以遵循AlamofireImage架构与新的AFImageDownloader类。这个类的图片下载职责的代理人是UIButton与UIImageView的类目,并且提供了一些方法,在必要时可以自定义。类别中,下载远程图片的实际方法没有改变。
UIWebView的类目被重构为使用AFHTTPSessionManager作为其网络请求。
UIAlertView的类目被废弃
从AFNetworking 3.0后UIAlertView的类目因过时而被废弃。并没有提供UIAlertController类目的计划,因为这是应用程序应处理的逻辑,而不是这个库。