美文网首页
UITableView重用机制原理及数据源同步处理

UITableView重用机制原理及数据源同步处理

作者: 滨滨_57b5 | 来源:发表于2019-01-31 14:52 被阅读0次

重用机制

代码
cell = [tableView dequeueReusableCellWithIdentifier:identifier];

机制

  • 系统会创建当前屏幕cell数+1个cell
  • 对UITableView向上滑动时,当第一个单元格完全滑出屏幕后,此时就会被加入到重用池中,接下来继续向上滑动时,当一个新的单元格出现时,就会根据指定的identifier标示符,从重用池中取出一个可重用的cell

作用

  • 避免大量创建实例对象,减少内存消耗,从而提高滑动流畅性

数据源同步问题

场景描述

  • UITableView有一个数据源datasource,用户对datasource进行了删除某一个元素的操作,与此同时向服务器请求数据,请求后的数据会对datasource进行赋值操作,此时就产生了数据源同步的问题

分析

  • 用户删除操作是在主线程,请求数据并赋值操作是在子线程,俩个线程会同时对datasource进行操作,会产生数据源同步问题

解决方式

  • 并发访问、数据拷贝的方式:当用户进行删除操作后,将删除的元素进行拷贝记录,当请求数据时,用拷贝的元素与请求数据进行对比,然后进行同步的删除操作,最后再对datasource进行赋值,这样就解决了数据源同步问题(数据源数据较大时,会有拷贝带来的性能损耗)
  • 串行访问的方式:(请求数据时间过长时,会对删除操作有延时)
  //串行队列
  dispatch_async(serial,^{
        //子线程网络请求,数据解析
  })

 //串行队列
diapatch_sync(serial,^{
    //主线程中删除datasource的某一个元素,因为是被加入到了串行队列,因此删除操作需要等待网络请求和数据解析结束后才能进行
})

dispatch_sync(main,^{
    //更新ui
})

相关文章

  • 02-UI视图

    UI视图内容 UITableView重用机制数据源的多线程操作(数据源同步问题) 事件传递&视图响应 视图显示原理...

  • UITableView重用机制原理及数据源同步处理

    重用机制 代码cell = [tableView dequeueReusableCellWithIdentifie...

  • iOS UI视图

    UITableView相关 重用机制和原理是什么样的?重用池 2.数据源同步的问题,多线程中去访问 并发访问数据拷...

  • UI相关知识

    一、UITableView相关 1.1、重用机制 代码层 重用示意图 1.2、数据源同步 解决方案 并发访问、数据...

  • 1-1UITableView相关面试题

    重用机制 了解UITableView的重用机制 数据源同步(想问有这个问题存在吗?) 上啦加载数据的时候删除某一行...

  • UI主要技术

    UITableView重用机制 数据源同步问题例如:ui显示数据源请求来的数据,删除某行后,子线程请求数据又同步到...

  • iOS面试题

    一.UI相关 1.UITableView相关 (1).重用机制 (2).数据源同步问题(多线程下修改数据源) 2....

  • 课程笔记:第3章 UI视图相关面试问题

    UITableView1、重用机制:先从重用池里取2、多线程下数据源同步(删除(主线程)后又加载数据(子线程)):...

  • UI视图相关

    UI视图相关 UITableView 相关重用机制数据源同步(新闻类app, 数据删除)并发访问串行访问 时间传递...

  • UI视图篇

    UITableView相关 重用机制 字母索引条 数据源同步问题 并发访问、数据拷贝 串行访问 事件传递&视图响应...

网友评论

      本文标题:UITableView重用机制原理及数据源同步处理

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