美文网首页
iOS 面试题集-05

iOS 面试题集-05

作者: 清杨程 | 来源:发表于2019-06-05 10:35 被阅读0次

    1、简述xml和json解析:

    1>、xml数据解析有两种解析方式;DOM解析与SAX解析,DOM解析必须完成DOM树的构造,在处理规模较大的XML文档就很耗内存,占用资源较多。
    2>、与DOM不同的是,它是用事件驱动模型,解析规模较大的XML文档时就很耗内存,占用资源较多。
    3>、与DOM不同的是,它是用事件驱动模型,解析XMI文档时每遇到一个开始或者结束标签、或者属性、或者一条指令时,程序就产生一个事件进行相应的处理,因此,SAX相对于DOM来说更适合操作较大的XML文档。
    4>、json解析现在性能比较好的主要是第三方的JSONKIT和iOS自带的json解析类,自带的json解析性能是最高的,但是iOS 5之后才可以使用。

    2、iOS中有哪些数据持久化的方式,各有什么特点,iOS平台怎么做数据的持久化?CoreData和sqlite有无必然联系?CoreData是一个关系型数据库吗?

    1>、主要有四种持久化方式:属性列表、对象归档、SQLite数据库、CoreData。
    2>、CoreData不是一个数据库,不过可以使用SQLite数据库来保持数据,也可以使用其他数据来保持。例如:XML。
    3>、属性列表、对象归档适合小数据量存储和查询。
    4>、SQLite、CoreData适合大数据存储和查询操作。

    3、简述单元测试:

    1>、iOS自带了一个单元测试框架OCUnit,但是目前最好用的测试框架应该是GHUnit。

    4、UITableView的重用机制:

    1>、如果屏幕上能显示n个单元格,则tableview只会创建n+1个单元格,当滑到第n+2个单元格时就会复用第一个单元格。Tableview中有个单元格池的这么一个概念,tableview调用协议方法获取单元格时,先从池子中查找是否有可复用的单元格,如果有则复用,如果没有则创建一个单元格对象。

    5、如何优化tableview的滑动速度:

    1>、复用单元格;
    2>、使用不透明的视图,单元格中尽量减少动画;
    3>、图片加载使用异步加载,并设置图片加载的并发数;
    4>、文字、图片可以直接用drawInRect绘制;
    5>、滑动时不加载图片、停止加载时开始加载图片。
    6>、如非必要,减少reloadData全部cell,使用reloadRowsAthIndexPaths;
    7>、如果cell 是动态高度,计数出高度后缓存。
    8>、cell高度固定的话直接使用cell.rowHeight设置高度;

    6、简述socket的通信方式:

    1>、Socket的通信是通过TCP/IP协议,实现客户端与服务器端之间的通信方式。客户端通过三次握手与服务器建立可靠的连接,然后进行数据的传送。

    7、谈谈对Runloop的理解:

    1>、Runloop是线程相关的基础框架一部分。一个runloop就是一个事件处理的循环、用来不停的调度工作以及处理输入事件。使用Run loop的目的是让你的线程在工作的时候忙于工作,而没工作的时候处于休眠状态。

    8、UIView和UIViewController的关系:

    1>、每个控制器都有一个根视图,控制器UIViewController用来管理此视图的加载与显示的。

    9、iOS中都有哪些手势:

    1> iOS提供了很多手势对象用于识别不同手势的操作:轻击、捏合、平移、轻扫、旋转、长按。

    10、简述Storyboard、有什么特点:

    1>、Storyboard是iOS5新增的特性,是对xib的升级版,引入了一个容器用于管理多个xib文件,和他们之间跳转交互。
    优点:不用为每个控制器创建xib文件了,可以使用静态cell,当cell固定且不多时,使用起来比较方便。缺点:使用storyboard单个文件,不利于团队协作开发。

    相关文章

      网友评论

          本文标题:iOS 面试题集-05

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