zoukankan      html  css  js  c++  java
  • 记一个花了3个小时解决的BUG

    今天下午开始给我的app的下载功能写删除下载的逻辑

    在这个逻辑中,点击了删除按钮后:

         1,当该cell正处于下载中时
              1,首先暂停全部cell
              2,删除该cell
              3,开始下载其他手动开始的cell
         2,当该cell处于下载暂停中时
              1,其他cell正在下载,暂停全部cell
              2,删除该cell
              3,开始下载其他手动开始的cell
    根据这个逻辑开始编写代码,2个小时后代码编写完成,但是预期与实际表现总是不一样,不停的提示数组越界的错误闪退。
    然后花了3个小时,终于找到了BUG:
    在某个cell执行了一个删除操作后,有一个HUD显示出来提示操作完成。坑爹的地方来了
     有些代码是在这个HUD的completionBlock中执行的,但是逻辑上的“开始下载其他手动开始的cell”代码应当是在completionBlock执行完后再执行的,这就导致了在HUD消失之前,completionBlock都不会执行,然后应该在completionBlock执行完后再执行的代码就提前执行了。
    由于删除操作删除了tableview的数据源的一些对象,但是下载器对cell的回调还要访问已经删除的cell,就导致了数组越界。
    后来,将开始下载其他手动开始的cell的逻辑也放入completionBlock中,BUG解决。
     
  • 相关阅读:
    Codeforces Round 546 (Div. 2)
    Codeforces Round 545 (Div. 2)
    Codeforces Round 544(Div. 3)
    牛客小白月赛12
    Codeforces Round 261(Div. 2)
    Codeforces Round 260(Div. 2)
    Codeforces Round 259(Div. 2)
    Codeforces Round 258(Div. 2)
    Codeforces Round 257 (Div. 2)
    《A First Course in Probability》-chaper5-连续型随机变量-随机变量函数的分布
  • 原文地址:https://www.cnblogs.com/ashamp/p/4074674.html
Copyright © 2011-2022 走看看