2022年iOS高级工程师面试题

2023-02-12  本文已影响0人  凯文Kevin21

PS:面试题内容来自群友收集分享,非本人!!!

真实面试题

load方法调用顺序、调用superLoad会走到谁?

总结:

PS: 调用superLoad, 走消息转发流程

KVO 没有setter

atomic

Barried和group

target project workspace scheme configuration

autoreleasePool

绘制完成后下次runloop还绘制么

二叉树深度

设置一个单写多读的数据库,要考虑什么(setter如何加锁,同时getter如何高效)

App卡顿检测

如何设计一个图片异步加载框架

IM如何解决启动消息堆积问题

数据库事务的好处

浏览器输入网址后的过程

中间人攻击

swift可选类型如何实现?

http2.1 (多路复用)

HTTP滑动窗口、流量控制

Isa

单链表翻转

性能检测

SDWeb 然后一个带图片的列表,用sd展示,譬如第二和第四是同一个链接,这种情况下它的策略是什么

tcp拥塞控制,

加密

gcd里的group,enter,leave,notify作用,

方法缓存cache怎么查找的

MachO的方法列表排序

weak的原理,

项目结构,组件化分层

查找冲突怎么实现的, 线上日志 崩溃

埋点这些

swift struct 和 class 区别

mutating 关键字

WebView优化

swift 派发机制

optinoal怎么实现的

protocol 怎么实现optional

swift访问权限修饰符

上传1个G的大文件,怎么设计,上传的时候读取到内存,一定是一次性读完吗

微信通话,让你设计,用TCP 还是 UDP,为什么

UDP发送1、2、3、4、5,5 个数据包,怎么保证它的顺序

冷启动runtime的初始化调用哪些方法

编译器运行原理

runloop应用场景,

AOP,函数式等等区别,

runtime应用

怎么hook+load

内存管理机制

内存分区以及堆区栈区区别,对象存哪里

block值捕获,

从点击应用图标开始的app启动流程(系统为程序启动做好准备,

Runloop作用以及如何监测卡顿

KVO原理以及自己如何实现

自动释放池相关,譬如何时释放、实现原理、@autoreleasepool加for循环情况下何时释放

深copy与浅copy

KVC原理 之后是Key与keypath区别,然后定义一个属性_name 然后kvc通过setValueforkey,这时赋值是用key赋值还是keypath

消息发送原理 然后消息转发为啥要分三个阶段,苹果这样设计的意义在哪儿(字节)

输入法要加载大量表情这时引起内存激增,这种情况如何优化

事件响应链如何寻找fitview(有次回答了事件响应链的hittest、pointinside方法寻找以及后边touchebegan之类的方法判定后,又这样问我有些懵逼)(字节、小红书、携程都有问)

tcp/udp区别

strong 、weak、copy 、assign 、retain 、unsafe_unretained 与autoreleasing

https原理

websocket原理

runloop与autoreleasepool关系

weak实现原理

Swift与OC区别 以及swift安全性体现

逃逸闭包与非逃逸闭包

gcd如何取消线程

app保活

深拷贝和浅拷贝

启动优化

内存管理,关键字 weak释放

category加载 消息机制(方法查找)

setNeedLayout和layoutIfNeed

UIView性能问题(卡顿掉帧)

SD 解码

组件化分层

看过哪些源码

音视频遇到过哪些问题

im丢消息怎么处理

多线程的应用

YYWebImage和SD 异同点

腾讯1面

Block

kvc与kvo

+load 和 +initialize(有什么注意)

Catagory 和 extension

commbine

method swizzling

application生命周期

  1. 启动程序
    • willFinishLaunchingWithOptions
    • didFinishLaunchingWithOptions
    • applicationDidBecomeActive
  2. 按下home键
    • applicationWillResignActive:
    • applicationDidEnterBackground:
  3. app在后台状态,点击app打开
    • applicationWillEnterForeground:
    • applicationDidBecomeActive:

腾讯二面

工作经历

编译优化

多继承

ARC MRC

weak 线程安全?

浮点数相等

性能监测

断点

离屏渲染

TCP UDP

头条1面

sona优化

Flutter与Lua

路由方案及事件总线

包体积优化

App启动过程

runloop及应用

搜狐一面

sd用了哪些锁

锁的性能排行

synchronized原理

afn线程保活

伪代码设计单写多读

runloop source0和1分别都对应什么事件

点击btn是如何事件传递唤醒runloop

runloop和线程的关系

runloop有多少个mode 多少个status、

@synthesize 和 @dynamic

NSString类型为什么要用copy修饰

多线程实现方式以及优缺点(gcd对比NSOperation)

NSTimer循环引用

block类型 以及循环引用

如何优化启动时长

extension和category的区别

autoreleasepool分别在哪些情况下会释放

autoreleasepool底层原理,

weak实现原理

解压zip遇到过哪些问题

webview加载优化

autorelease 和 runloop的关系

webview桥接怎么做的

说说Swift为什么将String,Array,Dictionary设计成值类型

MachO结构

MachO Segment

上一篇下一篇

猜你喜欢

热点阅读