面试前任务计划

目录

  • 刷面试题
  • Runloop经典六问,iOS面试必会!
  • 架构模式(MVC,MVP,MVVM),底层详解
  • 性能优化之内存优化
  • 大厂面试题解析上下两集
  • Runtime常用的几个应用场景
  • 约束布局相关知识点
  • 多线程
    • NSThread、GCD和NSOperation的详解与区别
    • NSThread GCD NSOperation 三者的用法区别
    • 栅栏函数无法拦住全局队列
  • RTSP协议和FFMpeg的使用
  • 熟悉Swift项目_极客商城Demo
  • 离屏渲染面试题解析

part01

  • Runloop经典六问,iOS面试必会!

    • 1、分析RunLoop与线程的关系,理解Source0与Source1的区别

      • 当App出现崩溃问题 -> 首先会在线程中找是否有定义处理函数 -> 如果没有,则直接exit() -> 如果有,则执行该函数
      • 资料:dispatch_source学习宝典.epub
      • source0是非系统事件,source1是系统事件
    • 2、理解主线程RunLoop与子线程RunLoop的区别
    • 3、通过Mach Port理解跨线程通讯和IPC,梳理RunLoop内在运行机制
      • Mach Port如何进行跨线程通讯?

        • Mach IPC:基于Mach内核实现进程间通讯
        • Mach IPC被抽象三种操作:messages、ports and port sets
        • Mach Port:跨线程通讯
      • MachPort是最基础的API,Socket是基于它来实现的
    • 4、RunLoop Timer不准的两个原因
    • 5、RunLoop mode自定义
    • 6、RunLoop常见面试题分析
  • 多线程
    • 多线程原理
    • 线程的生命周期
    • 线程与RunLoop关系
    • iOS八大锁对比探索解析
    • GCD
      • 队列与函数
      • 常见GCD面试分析
      • dispatch_barrier_async/sync栅栏函数应用及底层分析
      • dispatch_group调度组探索
      • dispatch_source解析
      • 单例底层原理
      • Dispatch Semaphore信号量解析

part02

  • 违背架构

    • 1、架构越好,代码越少?(否)
    • 2、便于维护,项目清晰。
    • 3、高类聚,低耦合。
    • 4、谁的事情谁做。
  • 如何降低MVC耦合度
    • 使用MVP或MVVM
  • 轻量化VC
    • VC应该做调度,并且建立View和Model关系(此处可以使用MVP)

MVP是一种面向协议编程的架构模式
从本质出发,cell为何会复用?

  • cell <-> model 通讯 双向绑定

    两种实现MVVM的方式

  • block 反向 + 响应式 KVO
  • block + 响应式编写(ReactiveObjc) 双向绑定
  • Swift、Combine(类似于RxSwift)
  • 架构 - 需求 - 写接口 -> 代理三部曲(编写协议、遵循协议、实现协议)
  • MVP 以需求驱动代码
  • MVP MVC MVVM
    • 嵌套层深的架构推荐使用MVP,而不是MVVM,因为大量的block会影响项目的调试、安全、清晰度

part03

  • OC和Swift关于对象的内存分配情况

    • OC对象分别有isa和所有的存储属性所构成
    • Swift对象是有metadata、引用计数和所有的存储属性所构成

iOS面试前的准备计划(2022)相关推荐

  1. 给新人的iOS面试资料(2016年3月6日更新)

    发现各种群里的新人都不知道怎么样去准备面试,确实现在找工作比较难,培训班出来的千篇一律的简历,极大的增加了你的简历被心仪企业看到的难度.所以这篇文章集合一些我之前搜集的面试要点,希望能给大家帮助. 简 ...

  2. 2022年大厂Java面试前复习的正确法(1000+面试题答案解析)

    前言 暑假之际,金九银十也即将来临,很多小伙伴面临换工作.找工作我相信各位小伙伴们或多或少都对Java的相关岗位的面试都有一定的了解,知道面试官一定会对某个知识点进行一系列的提问,直到让你接不住招.这 ...

  3. 面试Java后端开发的感受:如果就以平时项目经验来面试,通过估计很难——再论面试前的准备...

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试资料 作者:hsm_computer 链接:https://www.cn ...

  4. 面试前需要准备的五个步骤

    一.开门见山 一般来说,你(求职者)在面试中会花很多时间谈论以前的经历.如果你还没有想出你的最具代表性的经历/案例,那么你现在是时候该做了.下面有张问题 表,虽然很多问题看似比较低级,但相信我,看完这 ...

  5. 程序员:下一次面试前你需要准备的五个基本步骤

    2019独角兽企业重金招聘Python工程师标准>>> 看到此文,觉得太好了.polaris不敢独享,拿出来与大家分享-- 导读:面试准备的重要性不用编者多言,大家都很清楚.本文是加 ...

  6. 面试前,不要这么准备了,简直愚蠢到极点

    其他行业不了解,根据自己的过往和经验,陈述自己在互联网行业内几十次的面试和上百次面别人的过往和经验总结. 在一个公司待久了,面试也成了我的工作之一,尤其是在中小型公司.越是项目进度紧张.或是又有尼玛新 ...

  7. iOS 面试基础题目

    转载: iOS 面试基础题目 题目来自博客:面试百度的记录,有些问题我能回答一下,不能回答的或有更好的回答我放个相关链接供参考. 1面 Objective C runtime library:Obje ...

  8. 软件测试面试前必备题库(必备理论基础复习)

    因为我已经正式转岗成功,因此趁着有空,把之前自己面试前复习的知识整理起来,既可以帮助到有需要的人,也顺便自己做个总结. 在面试或者准备转岗前,大家都应该对最基本的理论知识能做到熟悉掌握,主要有以下一些 ...

  9. iOS面试备战-网络篇

    计算机网络是计算机科学与技术专业的必修课,也是移动端,前端,后端都会涉及并用到的知识点,可想而知它的重要性.所以它也成为了iOS面试中经常被问及的问题.准备面试的话,网络相关的知识点一定不能错过.这里 ...

  10. iOS面试准备 - ios篇

    iOS面试准备 - ios篇 ios面试准备 - objective-c篇 ios面试准备 - 网络篇 IOS面试准备 - C++篇 iOS面试准备 - 其他篇 运行时 https://juejin. ...

最新文章

  1. 《构建高可用Linux服务器》第一版勘误表(附脚本下载)
  2. hive SERDEPROPERTIES 中对NULL的处理
  3. pytorch筛选统计
  4. 我的学习之路_第二十三章_HTML
  5. 算法训练 瓷砖铺放 递归
  6. redis相关(搭建和数据落盘)
  7. PowerBI最全可视化视图打包和DEMO汇总
  8. 拓端tecdat|WINBUGS对随机波动率模型进行贝叶斯估计与比较
  9. Python3分别将list、numpy数组、变量内容写入txt文件中
  10. GWR4 软件输入数据制作
  11. qc中的流程图怎么画_QC常用手法_流程图详解.ppt
  12. <机器学习 房价预测 >对贝壳租房网 信息爬取 及处理。
  13. (七)CMake变量及其设置
  14. 泰康人寿付刚:IT规划 SOA是目标
  15. spring事物配置备份
  16. 软件著作权申请时间是多久?
  17. csgo显示服务器失败,csgo服务器失败
  18. 基于SSM的学生信息管理系统的设计
  19. 十二.vue-resourse实现get,post,jsonp请求
  20. 浅析人们对于企业即时通讯软件的几点误解

热门文章

  1. windows下Git与TortoiseGit的官网下载与安装
  2. 计算机图形学中的抗锯齿
  3. 通过阿里云容器镜像服务下载谷歌gcr.io镜像
  4. 蓝光三维扫描仪用于钢板焊接变形全尺寸测量
  5. 熄风的止颤的汤治疗帕金森的优势
  6. RTKLIB的一些个人实用总结
  7. MIT molecular Biology 笔记8 RNA剪接
  8. python简单的购物程序代码打折_Python进阶之路——简单购物代码
  9. qpython3.7.4版本下载_QPython3app下载
  10. Ubuntu中修改Home目录下中文目录为英文