0000*:OC面试汇总
1:MVC和MVVM的区别?MVVM和MVP的区。如何双重绑定. set方法修改ViewModel属性,ViewModel中KVO监听,做出数据请求,之后block传到View。
2:AFNetworking的底层原理。
3:SDWebimage,SDWebImage 下载了图片后为什么要解码?
4:get和post的区别、http有哪些部分、请求头有那些参数,Ping是什么协议,知道MTU吗,TCP头部多长,IP,Http2.0如1.x的区别,TCP 流量控制。比如 Cookie 和 Session 的,断点续传怎么实现?需要设置什么?
5:如果属性完全不加修饰词入weak,atomic,系统会怎么处理,assing可以使用在对象中吗,和weak有什么区别.
6:浅拷贝、单层深拷贝、深拷贝,数组copy后里面的元素会复制一份新的吗,可变数组的实现原理,为什么不可变对象要用copy。用@property声明的NSString(或NSArray,NSDictionary)经常使用copy关键字,为什么?如果改用strong关键字,可能造成什么问题
7: instrucment作用
8:反射是什么?可以举出几个应用场景么?(知道多少说多少),切面aop编程,App 无痕埋点的思路了解么?你认为理想的无痕埋点系统应该具备哪些特点?(知道多少说多少)
9:推送原理,为什么使用第三方推送
10:常见的内存泄漏有哪些?内存泄漏、野指针、空指针、NSNull和nil的区别?,野指针是什么,iOS 开发中什么情况下会有野指针?说说你对内存泄漏的看法,追问,block为什么容易引起内存泄漏?
11: 为什么使用组件化,组件化优点,组件化设计,组件化解耦,跳转,传值,如何通过一个view查找它所在的viewController,类名转化类对象。
12:怎么防止别人反编译你的app?代码加固 ?
13:App包的大小受哪些影响
14:证书过期怎么办?
15:方法签名有什么作用?
16:什么是动态连接库?静态库的原理是什么?你有没有自己写过静态编译库,遇到了哪些问题?
17:AppDelegate如何瘦身?
18:dSYM你是如何分析的?
19:cocoaPods的实现思路,为什么没有使用cocoaPods管理自己的 ,Pod update和pod install的区别
20:bitmap的结构
21:进程间通信的方式,线程之间的通信
22:简述下block的实现
23:排序题:冒泡排序,选择排序,插入排序,快速排序
24:谈对引用计数的理解
25:了解哪些设计模式
26:容错处理你们一般是注意哪些
27:UIViewController生命周期,在init方法里面,设置背景颜色,会生效吗 会生效?
28:应用程序的生命周期
29:RunLoop的生命周期
30:UIView和UILayer区别
31:load和initial
32:@synthesize 和 @dynamic 分别有什么作用?
33:Delegate 、Notification和KVO比较各自的优缺点,单例的优缺点,为什么代理要用weak?代理的delegate和dataSource有什么区别?block和代理的区别?
34:layoutIfNeeded和setNeedsLayout的区别
35:include import @class
36:id和NSObject ,instancetype的区别?
37:NSNumber如何实现的
38:autoreleasepool的使用场景,子线程里面,需要加autoreleasepool吗?NSRunloop使用场景。
39:自旋锁和互斥锁的区别,
40:事务的特征
41:使用method swizzling要注意什么?OC语言的动态机制的理解(开始浅谈runtime)
42:iOS 单元测试简单流程
43:索引的作用,索引的优缺点
44:多态
45:Images.xcassets和直接用图片有什么不一样,一般使用的图标内存为多大?比如200×300的图片,内存应该占用多少比较合理?一张图片的内存占用大小是由什么决定的
46:isEquel和hash的关系
47:URLScreme Universal Links
48: 显式动画和隐式动画
49:iOS开发知识之:NS_ASSUME_NONNULL_BEGIN,NS_ASSUME_NONNULL_END
50:抓包工具的原理:面试题之--Charles抓包原理