由于线程问题导致界面卡死

子线程请求数据、主线程刷新UI、这句话,已经说了无数次,然而今天还是在这里掉进了坑,看着日渐稀疏的秀发,还是记录下吧,
首先,如果我的网络请求完成之后直接[self.tableView reloadData],那么界面卡的不要不要的,

    dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT,0),^{//子线程中所有数据处理完毕
        id jsondata = [jsonString JSONValue];
        if (jsondata != nil) {
            if (jsondata && [jsondata isKindOfClass:[NSDictionary class]]) {
                self.dataDictionary = (NSDictionary *)jsondata;
                if ([[self.dataDictionary objectForKey:@"flag"] intValue] == 1) {
                    self.dataArray = [self.dataDictionary objectForKey:@"list"];
                    self.maxDropArr = [self.dataDictionary objectForKey:@"maxDrop"];
                }
            }
        }
        dispatch_async(dispatch_get_main_queue(),^{ //重新回到主线程中更新UI
            [self.dataTableView reloadData]; 
        });
    });

这样界面看起来流畅了不少,很好,非常nice,顺带一句,最近在写彩票的走势图,(不得不说使用 - (void)drawRect:(CGRect)rect {}方法对内存和效率方面还是有很多的优势的)回头整理下代码,写个日记记录下期中遇到的坑,先来一张图片占楼,虽然理论来说走势图有问题,然、设计图就是这样的,已经得到PM的确认,并且这么来说,比标准的走势图简单不少,何乐而不为呢,很好,很强大,very good

gg、图片不是很清晰,但是能说明问题
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • *面试心声:其实这些题本人都没怎么背,但是在上海 两周半 面了大约10家 收到差不多3个offer,总结起来就是把...
    Dove_iOS阅读 27,335评论 30 472
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 175,386评论 25 709
  • 218.241.181.202 wxhl60 123456 192.168.10.253 wxhl66 wxhl6...
    CYC666阅读 5,303评论 0 6
  • Quartz2D以及drawRect的重绘机制字数1487 阅读21 评论1 喜欢1一、什么是Quartz2D Q...
    PurpleWind阅读 4,227评论 0 3
  • 目标:近三个月收入增加五万元,种出我的业力伙伴,帮助更多的人。 1.给父母及男友父母各存5元钱,感恩他们的辛苦付出...
    空空dj阅读 1,358评论 0 0