TableView 解决AFN获取数据问题

首先,说明下我在完成任务的途中遇到的问题:

1.报错说我返回cell无法显示

2.执行parseData(解析数据函数)时会跳过,可以打印URL的值,但返回的读取值为空

3.返回的cell的内容但没办法显示在tableview上

二。解决问题1

返回的cell无法显示的问题比较简单,因为我原本想输出一本书的:书名,作者,价格,出版社,但是因为初次尝试,虽然在NSObject申明了四个(相当于结构体)但是只返回了name,在  -(UITableViewCell*)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath     定义cell时,返回值只写了book,但是book应该有name,price,publisher,author,所以程序就报错了,这时只要说明返回为book.name就行了。

          解决问题2

要解决这个问题,需要先了解

AFHTTPSessionManager *session =[AFHTTPSessionManager manager];

    [session GET:@"https://api.douban.com/v2/book/1220562"parameters:nil

这个函数,这个函数与上一篇所说的NSURL不同,这个函数会先运行比URL还底层的东西(我理解的哈),这样就导致它先要运行完底层的内容,返回后确认得到是success还是failure之后,才再运行success和failure底下的内容。通俗的说相当于这个函数要运行两次,第一次到最底层,不会执行success和failure底下的内容,第二次运行才会执行,因此在执行时我的parseData(解析)第一次是不会运行的,第二次才有用,而我断点调试没有一直向后,也就没有发现这个函数最后还会再次运行。

         解决问题三

无法将我设置的cell显示出来,在断点调试时可以发现函数  -(UITableViewCell*)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath(返回cell样式)没有执行,原因和上面一样,因为第一遍AFH那个函数到最底层去了,所以我啥数据都没得到,因此我的设置cell数目return一个nil,那么之后的返回cell样式的函数也就没有执行了,要解决这个问题需要使用一下weak加载和reloadData(这两个东西这几天我也会写成博客,点击我的头像看吧)通俗的说一个是限制程序运行一次,避免循环引用,一个是重新加载。

---------------------

作者:Miaoleigemi

来源:CSDN

原文:https://blog.csdn.net/miaoleigemi/article/details/81240800

版权声明:本文为博主原创文章,转载请附上博文链接!

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

推荐阅读更多精彩内容

  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 11,170评论 1 32
  • 1.自定义控件 a.继承某个控件 b.重写initWithFrame方法可以设置一些它的属性 c.在layouts...
    圍繞的城阅读 3,538评论 2 4
  • 1.badgeVaule气泡提示 2.git终端命令方法> pwd查看全部 >cd>ls >之后桌面找到文件夹内容...
    i得深刻方得S阅读 4,815评论 1 9
  • 大家做seo都是在千方百计的让搜索引擎抓取和收录,但是其实很多情况下我们还需要禁止搜索引擎抓取和收录 比如,公司内...
    李亚涛爱分享阅读 1,472评论 0 0
  • “唉!奴才这就去敲门!”小炉子闻言,高兴的小跑着去敲了门。对于端木焱的到来凤仙儿并不惊讶,可以说这是她期待已久的,...
    兮云阅读 396评论 5 3