Rumah > Soal Jawab > teks badan
先来点伪代码:
#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];
大家讲道理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.
PHP中文网2017-04-18 09:42:37
@property (nonatomic, strong)NSArray *jsonData;
你定义的数组是不可变数组,不能进行再次赋值吧。使用NSMutableArray试试