知识点总结

一、 UITableView有哪些优化方式

  1. 使用不透明视图(不透明的视图可以极大地提高渲染的速度)
  2. 不要重复创建不必要的table cell
  3. 减少视图的数目
  4. 不要做多余的绘制工作
  5. 预渲染图像
  6. 不要阻塞主线程

二、 线程和进程的区别?

程序启动就是一个进程,进程中可能包含多个线程。在iOS开发中,UI界面的刷新是在主线程完成。所以网络请求全部会阻塞主线程,我们在开发过程中为了避免程序假死,就会单开线程来做网络请求的操作。当网络请求完成,通过回调,进行数据交互。
主要分成两类:同步请求,异步请求
同步请求:单线程,在下载完成前,阻塞线程,造成假死。
异步请求:开辟新线程执行下载,不会阻塞主线程程序执行,当下载完毕后,通过回调完成数据反馈

三、 iOS中都有哪些技术可以开辟线程,它们的联系和区别是什么?

  1. NSThread 每个NSThread对象对应一个线程,量级较轻(真正的多线程)
  2. 以下两点是苹果专门开发的“并发”技术,使得程序员可以不再去关心线程的具体使用问题
    1> NSOperation/NSOperationQueue 面向对象的线程技术
    2> GCD-- Grand Central DIspatch (派发)是基于C语言的框架,可以充分利用多核,是苹果推荐使用的多线程技术
    以上者三种编程方式从上到下,抽象度层次是从低到高的,抽象度越高的使用越简单,也是Apple最推荐使用的,在项目中很多框架技术分别使用了不同多线程技术。
    三种线程对比:
  3. NSThread
    --优点:NSThread比其他两个轻量级,使用简单
    --缺点:需要自己管理线程的生命周期、线程同步、加锁、睡眠以及唤醒等。线程同步对数据的加锁会有一定的系统开销
  4. NSOperation:
    --不需要关心线程管理,数据同步的事情,可以把精力放在自己需要执行的操作上
    -- NSOperation是面向对象的
  5. GCD:
    -- Grand Central Dispatch是由苹果开发的一个多核编程的解决方案。iOS4.0才能使用,是替代NSThread,NSOperation的高效和强大的技术
    --GCD是基于C语言的

你可能感兴趣的:(知识点总结)