cari

Rumah  >  Soal Jawab  >  teks badan

ios - AFNetWorking请求后存入NSArray中,numberOfRowsInSection:方法中返回数据个数为0

先来点伪代码:

#import <MJExtension.h>
//用来接收AFNetWorking请求的数据
@property (nonatomic, strong)NSArray *jsonData;

@implementation xxxxViewController

- (void)viewDidLoad {

    [super viewDidLoad];

    [self getNetWorking];
}

-(void)getNetWorking{

AFHTTPSessionManager *manager =[AFHTTPSessionManager manager];
   
    [manager GET:@"http://127.0.0.1:8000/api/info/" parameters:nil progress:^(NSProgress * _Nonnull downloadProgress) {
        //进度
        //进度
    } success:^(NSURLSessionDataTask * _Nonnull task, id  _Nullable responseObject) {
        
        self.jsonData=[xxxModel mj_ObjectArrayWithKeyValuesArray:responseObject[@"news"]];
       
       [self.xxxx   reloadData];           
       
       //此处能打印出获取到的数据信息
       NSLog(@"%@",self.jsonData);
    
    } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
        // error 错误信息
    }];
}
@end

上面代码中请求后将responseObject返回的数据传给了self.jsonData,用NSLog打印后有值,但是为什么在UITableView的下面方法中获取到的数据个数为0,请问是什么原因,谢谢~!

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
        //打印数据个数
        SSTLog(@"jsonData个数===%ld",self.jsonData.count);
        //这里为0
        return self.jsonData.count;
}

打印后的信息如下:


**折腾了一天终于搞定了原来是一个默认选中UITableView第一行的一个方法捣的鬼。重复测试了好几遍,再次感谢回复我的各位兄台,非常的感激~跪拜!
去掉下面的代码就好了。。。(不知道有没有替换这个的方法,有的话望能告知,非常感谢~!)**

//默认选中第一行

     [self.leftTableView selectRowAtIndexPath:[NSIndexPath indexPathForRow:0 inSection:0] animated:NO scrollPosition:UITableViewScrollPositionTop];
阿神阿神2829 hari yang lalu769

membalas semua(4)saya akan balas

  • 大家讲道理

    大家讲道理2017-04-18 09:42:37

    Pada masa ini, tiada masalah dengan kod.

    Sebab yang mungkin untuk fenomena ini ialah selepas tableView ditambahkan pada hierarki paparan, numberOfRowsInSection akan dipanggil beberapa kali Pada masa ini, tiada data setempat, jadi 0 dikembalikan.

    Kuantiti yang betul boleh dipaparkan hanya selepas data diperolehi.

    balas
    0
  • PHP中文网

    PHP中文网2017-04-18 09:42:37

    Selepas mendapatkan data, muat semula tableView

    balas
    0
  • PHP中文网

    PHP中文网2017-04-18 09:42:37

    @property (nonatomic, strong)NSArray *jsonData;
    你定义的数组是不可变数组,不能进行再次赋值吧。使用NSMutableArray试试

    balas
    0
  • 黄舟

    黄舟2017-04-18 09:42:37

    Sebab semasa mencetak 0, data rangkaian belum diperolehi lagi...?

    balas
    0
  • Batalbalas