美文网首页iOS进阶干货分享iOS 进阶iOS面试
2019 iOS面试题总结(题目及答案已上传Githup)

2019 iOS面试题总结(题目及答案已上传Githup)

作者: _小迷糊_997 | 来源:发表于2019-06-24 20:53 被阅读286次

    Objective_C语言特性

    一、分类
    二、扩展
    三、代理(Delegate)
    四、通知(NSNotification)
    五、KVO (Key-value observing)
    六、KVC(Key-value coding)
    七、属性关键字

    runloop

    一、RunLoop概念
    二、RunLoop的数据结构
    三、RunLoop的Mode
    四、RunLoop的实现机制
    五、RunLoop与NSTimer
    六、RunLoop和线程

    runtime

    • objc在向一个对象发送消息时,发生了什么?
    • objc中向一个nil对象发送消息将会发生什么?
    • objc中向一个对象发送消息[obj foo]和objc_msgSend()函数之间有什么关系?
    • 什么时候会报unrecognized selector的异常?
    • 能否向编译后得到的类中增加实例变量?能否向运行时创建的类中添加实例变量?为什么?
    • 给类添加一个属性后,在类结构体里哪些元素会发生变化?
    • 一个objc对象的isa的指针指向什么?有什么作用?
    • [self class] 与 [super class]
    • runtime如何通过selector找到对应的IMP地址?
    • _objc_msgForward函数是做什么的,直接调用它将会发生什么?
    • runtime如何实现weak变量的自动置nil?知道SideTable吗?
    • isKindOfClass 与 isMemberOfClass
    • 使用runtime Associate方法关联的对象,需要在主对象dealloc的时候释放么?
    • 什么是method swizzling(俗称黑魔法)
    • Compile Error / Runtime Crash / NSLog…?
    • 代码题(一)
    • 代码题(二)

    UI相关

    一、UIView与CALayer
    二、事件传递与视图响应链
    三、图像显示原理
    四、UI卡顿掉帧原因
    五、滑动优化方案
    六、UI绘制原理
    七、离屏渲染

    Block相关面试题

    一、什么是Block?
    二、Block变量截获
    三、Block的几种形式

    多线程

    一、 进程
    二、 线程
    三、 进程和线程的关系
    四、 多进程
    五、 多线程
    六、任务
    七、队列
    八、iOS中的多线程
    九、GCD---队列
    十、死锁
    十一、GCD任务执行顺序
    十二、dispatch_barrier_async
    十三、dispatch_group_async
    十四、Dispatch Semaphore
    十五、延时函数(dispatch_after)
    十六、使用dispatch_once实现单例
    十七、NSOperationQueue的优点
    十八、NSOperation和NSOperationQueue
    十九、NSThread+runloop实现常驻线程
    二十、自旋锁与互斥锁

    内存管理

    一、内存布局
    二、内存管理方案
    三、MRC(手动引用计数)和ARC(自动引用计数)
    四、循环引用

    算法面试题

    1、不用中间变量,用两种方法交换A和B的值
    2、求最大公约数
    3、模拟栈操作
    4、排序算法
    5、折半查找(二分查找)
    6、集合结构 线性结构 树形结构 图形结构
    7、数据结构的存储
    8、单向链表\双向链表\循环链表
    9、二叉树/平衡二叉树
    10、过河经典问题,超详细解析
    11、字符串反转
    12、有序数组合并
    13、HASH算法
    14、查找两个子视图的共同父视图
    15、求无序数组中的中位数

    网络相关

    一、请求报文和响应报文
    二、HTTP的请求方式
    三、HTTP的特点
    四、HTTPS和HTTP的区别
    五、HTTPS的连接建立流程
    六、对称加密和非对称加密
    七、分别用C语言、python、GCDAsyncUdpSocket来实现UDP通信
    八、利用python实现Udp通信demo
    九、iOS端基于UDP的简易聊天demo

    性能优化

    1.基本概念
    2.怎么检测离屏渲染:
    3.怎么检测图层混合:
    4.光栅化
    5.入门级
    6.中级
    7.高级

    75道程序员逻辑思维面试题

    持续更新中,记得收藏关注哦!.....

    相关文章

      网友评论

        本文标题:2019 iOS面试题总结(题目及答案已上传Githup)

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