频道栏目
首页 > 程序开发 > 移动开发 > IOS > 正文
[课堂实践与项目]IOS网络-------URL加载网络资源(NSInvocationOperation 和NSOperationQueue)
2013-12-25 15:33:37         来源:李蝉er  
收藏   我要投稿

昨天介绍了NSThread方法的使用,今天介绍 NSOpreation的网络下载。

小的知识点我决定用简洁的方式呈现,以便于查阅。

1.用过选择器进行 NSOpreation的网络加载

1)定义NSInvocationOperation对象。

    
  NSInvocationOperation *operation = [[NSInvocationOperation alloc]initWithTarget:self selector:@selector(downLoadImgae:) object:indexPath];




设置到线程队列中

[self.queue addOperation:operation];

2)downLoadImgage方法

- (void)downLoadImgae:(NSIndexPath *)indexPath
{
    NSInteger row = [indexPath row];
    NSString *str = [self.array objectAtIndex:row];
    
    NSURL *url = [NSURL URLWithString:str];
    NSData *imageData = [NSData dataWithContentsOfURL:url];
    
    UIImage *image = [UIImage imageWithData:imageData];
    
    LCMyIndetifiterCell *cell =  (LCMyIndetifiterCell *)[self.tableView cellForRowAtIndexPath:indexPath];
    
    cell.imageView.image = image;
    
    [cell.activityIndicatorView stopAnimating];
    
    [cell.activityIndicatorView setHidesWhenStopped:YES];
    
    //[self.tableView reloadData];

}


2,通过block语句进行加载

  [self.queue addOperationWithBlock:^(void){
        
        NSInteger row = [indexPath row];
        NSString *str = [self.array objectAtIndex:row];
        
        NSURL *url = [NSURL URLWithString:str];
        NSData *imageData = [NSData dataWithContentsOfURL:url];
        
        UIImage *image = [UIImage imageWithData:imageData];
        
        
        cell.imageView.image = image;
         
        [cell.activityIndicatorView stopAnimating];
        
        [cell.activityIndicatorView setHidesWhenStopped:YES];

效果如下:



点击复制链接 与好友分享!回本站首页
上一篇:2013资料整理-iOS程序的启动过程原理
下一篇:iOS学习笔记——导航栏与标签栏结合
相关文章
图文推荐
点击排行

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站