iOS:加强

作者: 春暖花已开 | 来源:发表于2019-04-06 00:01 被阅读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,自我训练用。

    相关文章

      网友评论

        本文标题:iOS:加强

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