iOS面试题集锦

2016-09-06  本文已影响0人  奔向大牛

1、 get和post的区别

a.安全性问题:get请求的参数全部暴露在接口中,一般叫做明文请求或者傻瓜式请求,post请求的参数一般是以字典的方式进行拼接,相对于get请求而言比较安全

b.对文件大小的要求:get请求不允许向服务器上传文件(图片,pdf,音视频)

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

2、SDWebImage

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

实现原理:在内存和沙盒目录下(library/cache)各缓存一份文件,内存中的文件到一定程度会自动清除,沙盒目录下的文件需要由用户手动清除,首先检测内存(内存中无数据)->检测沙盒目录(无数据)->再发送网络请求获取数据

3、iOS7.8.9的PCH文件设置的区别

PCH文件的作用就相当于Swift中的Swift File,写在这里的头文件或者定义的变量可以全局访问到

a、iOS7中PCH文件默认时创建好的,直接使用就可以

b、iOS8中PCH文件需要自己创建(iOS-other-pch.file),并且需要设置文件PCH路径(target-Build settings ->"输入prefix" - 找到prefix.Header设置路径)

c、iOS9中PCH文件的创建以及路径设置和iOS8中一样,但是需要在PCH文件中添加一个标记(#ifndef __OBJC__  #endif)

4、类方法和实例方法的区别

a、定义区别:类方法定义时用 static 关键字修饰;

b、调用:类方法用类型点方法直接调用;实例方法用类型对象点方法调用;

c、是否能相互调用:

在类中绝对不能调用实例方法-实例方法必须有对象(实例),然后实例.方法名;

类方法只能调用类方法,实例方法可以调用实例方法和类方法

5、tableView的优化

1.复用问题

2.尽量避免使用动画

3.在图片数量多的情况下,使用异步加载,并且做缓存

4.自定义cell的时候直接绘制drawRect方法(几乎没人用)

上一篇下一篇

猜你喜欢

热点阅读