面试集锦3(更新)

2016-10-13  本文已影响0人  彼岸的黑色曼陀罗

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

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

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

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

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

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

如何加互斥锁
@synchronized(锁对象){//需要锁定的代码}

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

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

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

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.简单说明为什么要使用版本管理工具?

22.简单介绍一下SVN?

23.使用SVN进行源代码管理,使用终端把SVN仓库下载到本地的命令行是什么?

账号:manager
密码:manager
url:https://www.baidu.com
命令行:svn checkout https://www.baidu.com --username=manager --password=manager

24.在SVN中使用新创建的文件可以直接提交吗?

25.如何查看文件的状态?有哪些常用的状态?

26.WKWebView和UIWebView相比有什么优势?

27.操作题:给定SVN的账号和密码进行如下操作

28.SVN中如何查看版本信息?

29.SVN版本回退的两种操作场景是什么?

30.SVN和GIT有什么不同?

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

32.请简单说明NSCache的特点

33.请简单说明runloop中几个类之间的相互关系?

34.请简单介绍一下SDWebImage框架?

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

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

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

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

39.什么是runloop?

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

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

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

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

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

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

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

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

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

[[session dataTaskWithRequest:request completionHandler:^(NSData * _Nullable data, NSURLResponse * _Nullable response, NSError * _Nullable error) {
    //....
}] resume];

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

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

51.请简单介绍JSON和XML?

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

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

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

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

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

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

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

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

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

NSString *header = [NSString stringWithFormat:@"bytes=%zd-",self.currentSize];
 [request setValue:header forHTTPHeaderField:@"Range"]
- 用输出流实现离线断点下载
    - 当接收到服务器响应的时候创建输出流
    - didReceiveResponse:
        - 创建输出流NSOutputStream alloc initToFileAtPath:append:
            - 参数一:文件的路径(全路径)
            - 参数二:是否追加拼接YES
        - 打开输出流,开始任务
            - [stream open]把服务器的数据引入到客户端
            - 定义一个输出流属性
        - 写数据 self.stream write:maxLength:
            - 参数一:传字节,data.bytes
            - 参数二:大小,data.length
        - 关闭输出流
            - [self.stream close] 

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

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

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

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

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

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

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

 - (void)URLSession:(NSURLSession *)session task:(NSURLSessionTask *)task
         didSendBodyData:(int64_t)bytesSent
         totalBytesSent:(int64_t)totalBytesSent
         totalBytesExpectedToSend:(int64_t)totalBytesExpectedToSend

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

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

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

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

72.请简单介绍一下base64编码?

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

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

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

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

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

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

79.数字证书和公钥关系?

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

上一篇 下一篇

猜你喜欢

热点阅读