博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
从网络获取数据显示到TableViewCell容易犯的错
阅读量:6249 次
发布时间:2019-06-22

本文共 1635 字,大约阅读时间需要 5 分钟。

hot3.png

 

   昨晚第一次做用网络接口获取的数据,显示到自己的cell上,犯了很多的错,

总结如下;

1.数据源数组必须首先初始化,一般使用的是懒加载;

2.异步获取网络图片,通过第三方SDWebImage来做

a.首先导入这个包的

#import "UIImageView+WebCache.h"

b.通过这个类的方法设置imageview的图片

//显示网上的图片

    //参数1:需要显示的网络图片的url

    //参数2:占位图片(网络图片还没有下载完之前,imageView上显示的图片)

    //sd_setImageWithURL:placeholderImage:

    [_coverImageView sd_setImageWithURL:[NSURL URLWithString:model.imagePath] placeholderImage:[UIImage imageNamed:@" "]];

    

注意:如果网络图片过大,显示的时候会出现花屏的现象;

3!!!.同步从网络获取的图片是一个URL:比如:http:

在显示在我们的界面上的时候代码要这样写:

//从网络获取图片要用二进制得到url;

    NSURL *url = [NSURL URLWithString:model.cover_image];

    

    NSData *data = [NSData dataWithContentsOfURL:url];

    

    _coverImageView.image = [UIImage imageWithData:data];

2.从网络获取的数据显示在tableViewCell必须要刷新

代码如下:

#pragma mark - 准备数据

- (void)prepareData{

    

    

    //数组的初始化

    self.dataArray = [[NSMutableArray alloc]init];

    

    NSURLSessionConfiguration *config = [NSURLSessionConfiguration defaultSessionConfiguration];

    

    NSURLSession *session = [NSURLSession sessionWithConfiguration:config];

    

    NSURL *url = [NSURL URLWithString:path];

    

    NSMutableURLRequest *request = [NSMutableURLRequest

                                    requestWithURL:url];

    

    

    NSURLSessionDataTask *task = [session dataTaskWithRequest:request completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {

        

        

        

        NSDictionary *dict  = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:nil];

        

        NSArray *array = dict[@"data"][@"list"];

        

        for (NSDictionary *dict in array) {

            

            DataModel *myModel = [[DataModel alloc]

                                  initWithDictionary:dict];

           

            

            [self.dataArray addObject:myModel];

            

        }

        //数据刷新!!

        [_tableView reloadData];

        

    }];

    

    [task resume];

   

}

以上就是在从网络获取数据时候容易犯错的地方!!

转载于:https://my.oschina.net/luhoney/blog/667561

你可能感兴趣的文章
K 班1-7,alpha,beta 作业成绩汇总
查看>>
uva-10879-因数分解
查看>>
写了一个bug----使用已经被删除的内存
查看>>
清空表且自增的id重新从0开始
查看>>
[杂记]如何在LaTeX里插入高亮代码
查看>>
解决数据架构难点数据分布的六种策略
查看>>
mysql 存储过程创建
查看>>
centos7 composer安装
查看>>
「常微分方程」(阿諾爾德) Page 6 問題4 經過擴張相空間的每一點有且僅有一條積分曲線...
查看>>
同一个闭区间上有界变差函数的和与积都是有界变差函数
查看>>
java安全证书配置
查看>>
uikit学习
查看>>
使用erlang 建立一个自动化的灌溉系统(1)准备工作
查看>>
python 调用aiohttp
查看>>
LPAD、RPAD补位函数
查看>>
mysql 案例~ mysql故障恢复
查看>>
UESTC 1307 windy数(数位DP)
查看>>
关于JS面向对象、设计模式、以及继承的问题总结
查看>>
Spring Boot中使用MyBatis注解配置详解
查看>>
MatLab实现FFT与功率谱
查看>>