我从服务器获取数据而无法在tableview
中显示数据...我在jsonarray
变量中存储数据...但显示jsonarray.count
作为零外部完成处理程序。 (没有行numberOfRowsInSection
)。
@interface Staffdir ()
@property(nonatomic,strong) NSMutableArray* jsonarr;
@end
@implementation Staffdir
- (void)viewDidLoad {
_namesarr=[[NSMutableArray alloc]init];
_occupationarr=[[NSMutableArray alloc]init];
_Phonearr=[[NSMutableArray alloc]init];
_faxnumarr=[[NSMutableArray alloc]init];
NSMutableURLRequest*req=[[NSMutableURLRequest alloc]init];
NSURL*url=[NSURL URLWithString:@"http:someurl"];
[req setURL:url];
[[[NSURLSession sharedSession]dataTaskWithRequest:req completionHandler:^(NSData * _Nullable data, NSURLResponse * _Nullable response, NSError * _Nullable error) {
self.jsonarr = [NSJSONSerialization JSONObjectWithData:data
options:kNilOptions
error:&error];
NSDictionary *dict=[[NSDictionary alloc]init];
for(int i=0;i<self.jsonarr.count;i++){
dict=[self.jsonarr objectAtIndex:i];
[_namesarr addObject:[dict objectForKey:@"Name"]];
[_faxnumarr addObject:[dict objectForKey:@"Fax_Number"]];
[_Phonearr addObject:[dict objectForKey:@"Phone"]];
[_occupationarr addObject:[dict objectForKey:@"Job_Title"]];
}
}] resume];
[self.tableview reloadData];
[super viewDidLoad];
// Do any additional setup after loading the view.
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
return self.jsonarr.count;
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
Staffcustom *cell= [tableView dequeueReusableCellWithIdentifier:@"cell"];
if (cell == nil) {
cell = [[Staffcustom alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"cell"];
}
cell.namelabel.text=[_namesarr objectAtIndex:indexPath.row];
cell.namelabel.textColor = [UIColor blueColor];
cell.occupationlabel.textColor=[UIColor colorWithRed:0.5 green:0.0 blue:1 alpha:1.0];
cell.occupationlabel.text=[_occupationarr objectAtIndex:indexPath.row];
cell.phonelabel.text=@"12345678";
cell.faxnumlabel.text=@"12345678";
UIView * additionalSeparator = [[UIView alloc] initWithFrame:CGRectMake(0,cell.frame.size.height-1,cell.frame.size.width,0.1)];
additionalSeparator.backgroundColor = [UIColor blueColor];
[cell addSubview:additionalSeparator];
return cell;
}
- (IBAction)Btn_Back:(id)sender
{
[self dismissViewControllerAnimated:YES completion:nil];
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
答案 0 :(得分:1)
试试这个:
从服务器获取数据
[json PostMethod:method parameters:parameter success:^(NSDictionary *responseDict){
response=[[NSMutableArray alloc]init];
for (int i=0; i < [[responseDict valueForKey:@"transactions"] count]; i++) {
[response addObject:[[responseDict valueForKey:@"transactions"]objectAtIndex:i]];
}
[self.tableView reloadData];
TableviewCell格式
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"Cell"];
if(cell == nil){
cell = [[UITableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"Cell"];
if ([response count] > 0) {
//creating the status lable
UILabel * name = [[UILabel alloc]initWithFrame:CGRectMake( 80*XScale, 25*YScale, XScale*200, YScale*15)];
name.font = [UIFont fontWithName:@"STHeitiSC-Medium" size:12.0f];
NSString *time=[[response objectAtIndex:indexPath.row]valueForKey:@“name”];
[cell.contentView addSubview:name];
检查一下,如果您仍然面临错误更新我.i会有所帮助,如果您提供您的回复,它将帮助我轻松解决问题。