GCD练习 创建子线程 其中回调主线程

//-------- 练习
 

  _desimage = [[UIImageView alloc] init];

        [self.scroll addSubview:_desimage];

               NSURL *urlDetail = [NSURL URLWithString:[detailImageArray objectAtIndex:i]];

   //创建系统的全局队列(子线程)

                dispatch_queue_t  globalQueue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);

                //    执行队列

                dispatch_async(globalQueue, ^{

                    //编写队列任务

 

        

                    NSData *data = [NSData dataWithContentsOfURL:urlDetail];

        

                    UIImage *image = [UIImage imageWithData:data];

                    //回归主线程

                    dispatch_queue_t mainQueue=dispatch_get_main_queue();

                    dispatch_async(mainQueue, ^{

                        _desimage.image = image;

//对frame赋值 不然会崩溃(因为没有frame)

                             _desimage.frame = CGRectMake(0, line3imageview.frame.origin.y + 13 , image.size.width, image.size.height);

                        //刷新页面

        

                        NSLog(@"来不来");

                        CGFloat num = _desimage.frame.size.width / YQScreenW;

                        CGFloat w = YQScreenW;

                        CGFloat h= _desimage.frame.size.height/num;;

        //                h =

                        NSLog(@"666666 ===== %f  ==== %f",image.size.width,image.size.height);

                        _desimage.frame = CGRectMake(0, line3imageview.frame.origin.y + 13  ,  w ,h);

//                        [self.scroll addSubview:_desimage];

        //                _desimage.contentMode = UIViewContentModeScaleToFill;

        

                        self.scroll.contentSize = CGSizeMake(YQScreenW, _desimage.frame.size.height + _desimage.frame.origin.y+10*YQHeight);

        

        

                    });

        

        

                });



你可能感兴趣的:(缓存,GCD)