iOS开发知识小集

iOS:加强

2019-04-06  本文已影响31人  春暖花已开

基础问题
1、使用系统的某些block api(如UIView的block版本写动画时),是否也考虑引用循环问题?
2、用@property声明的NSString(或NSArray,NSDictionary)经常使用copy关键字,为什么?如果改用strong关键字,可能造成什么问题?
3、UIView和 CALayer是什么关系?
4、static有什么作用
5、Category(类别)、 Extension(扩展)和继承的区别
6、为什么代理要用weak?代理的delegate和dataSource有什么区别?block和代理的区别?
7、id和NSObject*的区别
8、如何令自己所写的对象具有拷贝功能?

设计模式
1、除了单例,观察者设计模式以外,还知道哪些设计模式?分别介绍一下
2、最喜欢哪个设计模式?为什么?
3、iOS SDK 里面有哪些设计模式的实践?
4、设计模式是为了解决什么问题的?
5、设计模式的成员构成以及工作机制是什么?
6、设计模式的优缺点是什么?

架构设计
7、MVC和MVVM的区别?MVVM和MVP的区别?
8、面向对象的几个设计原则了解么?最好可以结合场景来说。
9、可以说几个重构的技巧么?你觉得重构适合什么时候来做?
10、你觉得框架和设计模式的区别是什么?
11、看过哪些第三方框架的源码,它们是怎么设计的?设计好的地方在哪里,不好的地方在哪里,如何改进?
底层
16、main()之前的过程有哪些?
17、KVO基本原理?
18、Swift 下的如何使用 KVC?
19、:Swift有哪些模式匹配?
20、objc在向一个对象发送消息时,发生了什么?
21、静态库的原理是什么?你有没有自己写过静态编译库,遇到了哪些问题?
22、runloop是来做什么的?runloop和线程有什么关系?主线程默认开启了runloop么?子线程呢?
23、App 网络层有哪些优化策略?
24、TCP为什么要三次握手,四次挥手?
25、对称加密和非对称加密的区别?分别有哪些算法的实现?
26、HTTPS的握手流程?为什么密钥的传递需要使用非对称加密?双向认证了解么?
27、HTTPS是如何实现验证身份和验证完整性的?
28、如何用Charles抓HTTPS的包?其中原理和流程是什么?
29、什么是中间人攻击?如何避免?

网络
30、HTTP协议详解
31、谈谈你对HTTP 、TCP、 IP、socket 协议的理解

测试
32、单元测试那些事!
33、为什么使用这个单元测试呢?它给我们带来了什么好处呢?
34、单元测试的重要性:

swift
35、swift闭包
36、swift中高阶函数map用法

线程
37、 不要阻塞主线程
38、谈谈你对多线程开发的理解?ios中有几种实现多线程的方法?
39、进程和线程的区别?同步异步的区别?并行和并发的区别?
40、ViewController生命周期
41、iOS 中的多线程
42、内存管理的几条原则时什么?按照默认法则.那些关键字生成的对象
需要手动释放?在和property结合的时候怎样有效的避免内存泄露?谁申请,谁释放
43、dispatch_barrier_async的作用是什么?
44、如何用GCD同步若干个异步调用?(如根据若干个url异步加载多张图片,然后在都下载完成后合成一张整图)

http
46、http与https的区别?
47、服务器能否知道APNS推送后有没有到达客户端的方法?
app
48、1.什么方式可以看到上架App的头文件?
47、阅读过哪些框架的源码?能说说它的架构方式吗
49、iOS iAP内购审核可能失败的问题
50、IAP内购中虚拟货币导致审核无法通过的问题?

转自 胖虎_callmeV,自我训练用。

上一篇下一篇

猜你喜欢

热点阅读