• ios 异步和多线程


    1

        //display&data
        _myview.view_searchbar.btn_back.hidden=true;
        [LSJsonHelper PrintLog:@"viewdidload"];
        [LSJsonHelper RequestHttp:gbl_urlindexcategory handle:^(NSDictionary *data) {
            [LSJsonHelper PrintLog:@"callback"];
            _data_category=[LSJsonHelper ConverJason2Model:data cc:[LSModel_VCategory_All class] isArray:YES];
            NSString *img1=[NSString stringWithFormat:@"%@%@",gbl_imgspath,_data_category[0].cg_pic];
            [LSJsonHelper PrintLog:@"before request img"];
            
            dispatch_async(dispatch_get_main_queue(), ^{
                [LSNSURL LoadImageForimg:img1 img:_myview.image_eat];
                [LSJsonHelper PrintLog:@"after set img to imagevie"];
            });
            
            [LSJsonHelper PrintLog:@"end this function"];
        }];
    2018-07-02 17:22:12.302 MyCity100[3014:82518] 2018-07-02 05:22:12:301.<NSThread: 0x7b771880>{number = 1, name = main} :viewdidload
    2018-07-02 17:22:12.309 MyCity100[3014:82518] 2018-07-02 05:22:12:309.<NSThread: 0x7b771880>{number = 1, name = main} :viewWillAppear
    2018-07-02 17:22:12.354 MyCity100[3014:82518] 2018-07-02 05:22:12:355.<NSThread: 0x7b771880>{number = 1, name = main} :viewDidAppear
    2018-07-02 17:22:12.431 MyCity100[3014:82573] 2018-07-02 05:22:12:431.<NSThread: 0x7c98ed90>{number = 3, name = (null)} :callback
    2018-07-02 17:22:12.436 MyCity100[3014:82573] 2018-07-02 05:22:12:436.<NSThread: 0x7c98ed90>{number = 3, name = (null)} :before request img
    2018-07-02 17:22:12.437 MyCity100[3014:82573] 2018-07-02 05:22:12:437.<NSThread: 0x7c98ed90>{number = 3, name = (null)} :end this function
    2018-07-02 17:22:15.616 MyCity100[3014:82518] 2018-07-02 05:22:15:616.<NSThread: 0x7b771880>{number = 1, name = main} :after set img to imagevie

    可以看到。异步网络请求后的回调函数是在子线程中执行。

    所以时间上一般页面执行完了显示函数,才会执行回调。

    更主要的是页面上的控件都是在主线程上创建的。基本所有语言都是要求由主线程进行刷新。

    oc 也不例外,所以编写主线程的回调函数。

     dispatch_async(dispatch_get_main_queue(), ^{
  • 相关阅读:
    【mysql+RBAC】RBAC权限处理(转载:http://www.cnblogs.com/xiaoxi/p/5889486.html 平凡希)
    【小程序】获取微信 自带的 收货地址获取和整理
    【TP3.2】跨库操作和跨域操作
    【JS】一款好用的JS日历选择插件【bootstrap-datetimepicker.js】
    Python 读写文件中w与wt, r与rt的区别
    Python 在序列上跟踪索引和值
    SoapUI 使用变量
    python 跳过可迭代对象的开始部分
    Python 迭代器切片
    Python: 类中为什么要定义__init__()方法
  • 原文地址:https://www.cnblogs.com/lsfv/p/9255113.html
Copyright © 2020-2023  润新知