title: ios-interview
date: 2017-03-27 18:21:48
tags:
一、多线程及网络相关的问题:
1.多线程的底层实现?
2.线程间怎么通信?
在子线程获取数据,主线程刷新UI
3.网络图片处理问题中怎么解决一个相同的网络地址重复请求的问题?
4.用NSOpertion和NSOpertionQueue处理A,B,C三个线程,要求执行完A,B后才能执行C,怎么做?
依赖
5.列举cocoa中常见对集中多线程的实现,并谈谈多线程安全的几种解决办法及多线程安全怎么控制? 四种:加锁
6.gcd内部怎么实现的
- 你用过NSOperationQueue么?如果用过或者了解的话,你为什么要使用NSOperationQueue,实现了什么?请描述它和GCD的区别和类似的地方(提示:可以从两者的实现机制和适用范围来描述)。
- 既然提到GCD,那么问一下在使用GCD以及block时要注意些什么?它们两是一回事儿么?block在ARC中和传统的MRC中的行为和用法有没有什么区别,需要注意些什么?
9.在异步线程中下载很多图片,如果失败了,该如何处理?请结合RunLoop来谈谈解决方案.(提示:在异步线程中启动一个RunLoop重新发送网络请求,下载图片) - Socket的实现原理及Socket之间是如何通信的
二、内存管理相关的问题:
1.怎么保证多人开发进行内存泄露的检查.
2.非自动内存管理情况下怎么做单例模式.
3.对于类方法(静态方法)默认是autoRelease的。我添加的代码导致了过渡释放。所有类方法都会这样吗?
4._block函数在arc跟非arc里面有什么区别
5.什么情况下会发生内存泄漏和内存溢出?
6.[Nsarry array withobject:<id>] 这个方法添加对象后,需要对这个数组做释放操作吗?
7.Josn数据的解析,和解析数据的时候有内存泄露吗?有的话 如何解决
三、C语言和Foundation相关的问题
1.KVO内部实现原理
2.是否可以把比较耗时的操作方在NSNotificationCenter中
3.Cocoa的Foundation对象与Core Foundation对象有什么区别
4.不用中间变量,用两种方法交换A和B的值
5.简单描述下对单利模式设计对理解?
6.什么是动态,举例说明
7.runtime实现的机制是什么,怎么用,一般用于干嘛. 你还能记得你所使用的相关的头文件或者某些方法的名称吗?
8.是否使用过CoreText或者CoreImage等?如果使用过,请谈谈你使用CoreText或者CoreImage的体验。
9.NSNotification和KVO的区别和用法是什么?什么时候应该使用通知,什么时候应该使用KVO,它们的实现上有什么区别吗?如果用protocol和delegate(或者delegate的Array)来实现类似的功能可能吗?如果可能,会有什么潜在的问题?如果不能,为什么?(虽然protocol和delegate这种东西面试已经面烂了…)
10.Block内部的实现原理
四、数据存储相关的问题
• 如果后期需要增加数据库中的字段怎么实现,如果不实用核心数据呢?
• SQLite数据存储是怎么用?
• 简单描述下客户端到缓存机制?
• 你实现过多线程的Core Data么?NSPersistentStoreCoordinator,NSManagedObjectContext和NSManagedObject中的哪些需要在线程中创建或者传递?你是用什么样的策略来实现的?
五、UI控件相关的问题
• 怎么解决缓存池满的问题,(cell)
• CAAnimation的层级结构
• UIButton与UITableView的层级结构
• 如何渲染自定义格式字符串的UILable
• 设置scroll view的contensize能在Viewdidload里设置么,为什么
• 按钮或者其它UIView控件的事件传递的具体过程
• 控制器View的生命周期及相关函数是什么?你在开发中是如何用的?
六、应用程序相关的问题
1.NSRunLoop的实现机制,及在多线程中如何使用
2.IOS7之前,后台执行内容有几种形式,都是什么
3.简单说一下APP的启动过程,从main文件开始说起
4.把程序自己关掉和程序进入后台,远程推送的区别
5.本地通知和远程推送通知对基本概念和用法?
七、第三方框架相关的问题
• 第三方API是怎么用的?
• 列举现在熟悉iOS开发库和第三方开发库?
八、其它相关的问题
• 客户端安全性处理方式?
• 简单描述下社交行为到步足?
• sip是什么?
• 数据比较大的时候是用内循环,还是外循坏?
• 有些图片加载的比较慢怎么处理?你是怎么优化程序的性能的?
• 你实现过一个框架或者库以供别人使用么?如果有,请谈一谈构建框架或者库时候的经验;如果没有,请设想和设计框架的public的API,并指出大概需要如何做、需要注意一些什么方面,来使别人容易地使用你的框架。
• App需要 加载超大量的数据 给服务器发送请求 ,但是服务器 卡住了 如何解决?
• 利用NSNotificationCenter实现跨多控制器传输数据和消息 中 用同步还是异步?