iOS之家iOS 面试iOS-面试题

iOS基础问答面试题连载(三)-附答案

2016-11-23  本文已影响15603人  伯虔

该文章属于<简书 — Timhbw>原创,转载请注明: <简书社区 — Timhbw>http://www.jianshu.com/p/5fd65c20912e

iOSinterview.jpg

<简书社区 — Timhbw>iOS基础问答面试题连载(一)-附答案
<简书社区 — Timhbw>iOS基础问答面试题连载(二)-附答案
<简书社区 — Timhbw>iOS基础问答面试题连载(三)-附答案
<简书社区 — Timhbw>iOS基础问答面试题连载(四)

这次的问题是网络多线程相关的哟,面试的时候也是必问的,大家多看看

11月24日修正一处错误:18、19题目一样,答案不一样(其实是两种理解,修改为最优的一种放上来.多谢读者提醒)

1.请简单说明多线程技术的优点和缺点?

2.请简单说明线程和进程,以及他们之间的关系?

3.请简单说明在iOS开发中有哪些多线程的实现方案?

4.请简单说明主线程的作用,以及使用注意点?

5.请简单列出NSThread线程的几种状态,并说明状态转换的逻辑?

新建->就绪 CPU调度当前任务->运行->阻塞->死亡
                            CPU调度其他任务->就绪

6.请简单说明如何简单的解决多线程访问同一块资源造成的线程安全的问题,以及注意点?

7.请简单介绍下什么是原子和非原子属性?

8.请简单介绍下GCD这门技术?

9.请简单介绍GCD中的几种队列?(4种)

10.如果当前有多个任务,这些任务都需要开子线程执行,而多个任务之间有一定的依赖关系,如果使用GCD来实现请试着给出一些解决方案。


11.请简单说明单例模式的特点(作用)?

12.请简单介绍操作队列?

13.如果有多个操作如何来设置依赖关系,如何监听到某个操作执行完毕事件?

14.请简单比较GCD中的全局并发队列和使用dispatch_queue_create函数创建的并发队列异同?

15.请简单说明对图片进行二级缓存的实现思路?

16.请简单对比下GCD和NSOperation两种多线程的实现方案?

17.请按照自己的理解,说一说在进行多线程编程的时候相对于GCD而言,操作队列有哪些优势?

18.请谈一谈,自定义操作的好处?

19.请简单介绍GCD中的一次性代码?

   static dispatch_once_t onceToken;
     dispatch_once(&onceToken, ^{
        NSLog(@"-------");
     });

20.GCD中的dispatch_after是延迟把任务提交到队列还是先提交到队列再延迟执行?


21.请说明NSRunloop和线程的关系?

22.请简单说明NSCache的特点

23.请简单说明runloop中几个类之间的相互关系(runloop & source & timer &observer &mode)

24.请简单介绍下SDWebImage框架?

25.请问SDWebImage框架内部在清理磁盘缓存的时候clearDisk方法和cleanDisk方法有什么区别?

26.请问SDWebImage框架的框架结构是怎么样的?

27.请问SDWebImage框架内部怎么处理内存缓存的?

28.请简单说明NSRunloop的基本作用?

29.什么是runloop?

30.runloop的自动释放池什么时候创建释放?


31.请简单说明使用NSURLConnection发送网络请求的几种方法?

同步 NSData *data = [NSURLConnection sendSync....]
异步 [NSURLConnection sendAsync]
代理 delegate

32.请简单说明GET请求和POST个请求有什么区别,如何选择?

33.请简单列出使用NSURLConnection发送一个异步POST网络请求的步骤?

34.请简单说明HTTP通信的过程?

35.请简单说明NSURLSession对比NSURLConnection的优势?

36.请简单列出NSURLSession发送POST请求的步骤?

37.在发送网络请求的时候,如果请求路径中的参数有中文导致发送的网络请求失败,应该如何处理?

[urlStr stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]

38.观察下面的代码,请问completionHandler在主线程还是子线程执行?

[[session dataTaskWithRequest:request completionHandler:^(NSData * _Nullable data, NSURLResponse * _Nullable response, NSError * _Nullable error) {

    //....

}] resume];

39.请简单介绍下网络响应的状态码?

40.使用NSURLSession发送网络请求的时候,最多可以建立多少个TCP连接?


41.请简单介绍JSON和XML?

42.JSON格式中的true和false,对应OC中的什么数据类型,值为多少?

43.请简单说明什么是序列化和反序列处理,用到了什么方法?

44.请简单说明输出流的使用步骤【应用于文件下载时】和注意点?

45.请简单说明文件句柄(NSFileHandle)的使用步骤【应用于文件下载时】和注意点?

46.请简单介绍下NSURLSessionTask的几个子类?

47.请简单介绍在iOS开发中XML的几种解析方式?

DOM 一次性加载 GDataXML
SAX 一个元素一个元素的解析 NSXMLParser(创建解析器->设置代理->开始解析)

48.如何解决session设置代理之后对代理对象的强引用问题?

49.在XCode中如何配置以MRC的方式来编译处理某个类?

50.在使用NSURLSessionDataTask发送请求下载文件的时候,实现断点下载的技术要点是什么?

 NSString *header = [NSString stringWithFormat:@"bytes=%zd-",self.currentSize];
 [request setValue:header forHTTPHeaderField:@"Range"]

51.请简单比较使用NSURLSessionDownloadTask下载文件和使用NSURLSessionDataTask下载文件的优劣?

52.请列出使用NSURLSession发送请求实现文件上传的主要步骤?

53.请列出你认为在进行文件上传时候需要注意的细节(注意点)?

54.请简单说明能够获得文件二进制数据类型(MIMEType)的几种方法?

55.请简单介绍下AFN各个主要版本的情况?

 0.1--1.0            "2.0---2.6.3"                    3.0-->3.1.0
 NSURLConnection - (NSURLConnection + NSURLSession) - NSURLSessio

0.1-2.0  NSURLConnection
2.0 -3.0 NSURLSession + NSURLConnection
3.0 + NSURLSession

56.如果服务器返回的数据不是JSON数据,那么在使用AFN发送网络请求的时候会请求失败请问是什么原因产生的?如何解决?

manager.responseSerializer = [AFXMLParserResponseSerializer serializer]
- 如果既不是JSON也不是XML,则manager.responseSerializer = [AFHTTPResponseSerializer serializer]

57.在使用NSURLSession进行文件上传的时候,如何监听文件上传的进度,有哪些注意点?

         - (void)URLSession:(NSURLSession *)session task:(NSURLSessionTask *)task

         didSendBodyData:(int64_t)bytesSent

         totalBytesSent:(int64_t)totalBytesSent

         totalBytesExpectedToSend:(int64_t)totalBytesExpectedToSend

58.请简单说明系统默认提供的NSURLSessionConfiguration三种配置信息?

59.在发送网络请求的时候,如果一个参数(place)需要对应着多个值,那么以下两种请求路径哪种是正确的?

①:[http://192.168.31.520:1314/loveyou?place=Beijing&Shanghai](http://120.25.226.186:32812/weather?place=Beijing&Shanghai)

②:[http://](http://120.25.226.186:32812/weather?place=Beijing&place=Shanghai)[192.168.31.520:1314](http://120.25.226.186:32812/weather?place=Beijing&Shanghai)/loveyou?place=Beijing&place=Shanghai

第二种请求路径是正确的,第一种是错误的,后面的shanghai将会被忽略

60.使用AFN进行文件下载相对于NSURLSessionDownloadTask而言有何好处?


61.请简单回答网络安全的原则是什么?

62.请简单介绍下Base64编码?

63.请简单说明单向散列函数的特点?

64.请简单介绍下散列函数的一些应用领域?

65.请简单介绍下对称加密的特点和经典算法?

66.请简单说明ECB和CBC两种分组加密模式?

67.请简单介绍下非对称加密的特点和经典算法?

68.请简单介绍下数字签名这门技术?

69.数字证书和公钥什么关系?

70.请简单说明在安装cocoapods时,使用pod install命令安装框架后的大致过程?

PDF3文件下载

上一篇下一篇

猜你喜欢

热点阅读