美文网首页将来跳槽用
面试题总结(一)

面试题总结(一)

作者: 中二期de馒头 | 来源:发表于2016-09-07 20:40 被阅读0次
    p28658872.jpg

    get和post请求的区别

    1、安全性问题

    a. get请求的参数全部暴露在接口中或网址中,且参数以明文的形式出现,这个请求方式一般叫做文明请求或者傻瓜式请求。
    b. post请求的参数一般是以字典的方式进行拼接,参数在请求数据区存放着,相对于get比较安全。

    2、对文件大小的要求

    get请求一般情况下不允许向服务器上传文件(图片文件、pdf文件、音视频文件),get请求在提交时,传输数据会受到URL长度的限制。
    一般情况下使用post请求来进行文件的上传操作,post请求不是通过url传值,理论上数据不受到限制。

    3.总结

    如果从服务器获取数据或者查询数据使用get请求,如果上传数据到服务器或者修改服务器上数据使用post请求

    SDWebImage的实现原理

    SDWebImage是用来加载网络图片的第三方库,实现了异步请求数据,并且实现了图片的缓存。

    SDWebImage的实现原理:在内存和沙盒目录下各缓存一份文件,内存中的文件到一定程度会自动清除,沙盒目录下的文件需要由用户手动清除。

    首先检测内存(自动清除缓存文件)--->然后检测沙盒目录,如果沙盒目录下有缓存文件,需要手动清除--->最后进行网络请求

    AFNetworking的实现原理

    AFNetworking是实际项目中最常用的网络请求库,目前在github下载量排名第一,对应的版本最新的为3.0。2.0版本以前封装自系统的NSURLConnection,3.0之后(ios9)封装自系统的NSURLSession,还可以用于检测网络状态,缓存图片。

    AFNetworking支持比较新的特性,简单易用,但文档数目一般,功能少,忽略了一些扩展功能。

    AFNetworking实现原理:AFNetworking直接操作对象的AFHttpClient,是一个实现了NSCoding和NSCopying协议的NSObject子类,AFNetworking默认没有封装同步请求,如果开发者需要使用同步请求,则需要重写getPath: paramenters: success: failures方法,对AFHttpRequestOperation进行同步处理。

    KVO和KVC

    KVO

    KVO:键值观察机制,是一种能使对象获取到其他对象属性变化的通知机制,KVO可以观察某个对象的变量变化过程。

    优点:
    a、能够提供一种简单的方法实现两个对象间的同步
    b、能够对非我们创建的对象,即内部对象的状态改变做出响应,而不要改变内部对象的实现
    c、能够提供观察的属性的最新值以及先前值
    d、用key paths来观察属性,因此也可以观察嵌套对象
    e、完成了对观察对象的抽象,因为不需要二维的代码来允许观察值能够被观察

    缺点:
    a、观察的属性必须使用strings来定义,隐藏编译器不会出现警告和检查
    b、对属性重构将导致观察代码不再可用
    c、复杂的“if”语句要求对象正在观察多个值,这是因为所有的观察都通过一个方法来指向
    d、当释放观察者时不需要移除观察者

    KVC

    KVC:键-值编码,是一个用于间接访问对象属性的机制(一种使用字符串而不是访问器去访问一个对象实例变量的机制),只用该机制不需要调用set或get方法􏰉以及->来访问成员变量,它通过setValue: forKey 和valueForkey方法来访问。

    优点:
    a、主要的好处就是减少代码量
    b、没有property的变量也能通过KVC来设置

    缺点:
    如果key写错,编写时不会报错,运行时会报错

    注意:KVC不是设计模式

    相关文章

      网友评论

        本文标题:面试题总结(一)

        本文链接:https://www.haomeiwen.com/subject/extsettx.html