调用UITableViewCell甚至不更新cellForRowAtIndex

时间:2018-05-18 11:33:26

标签: ios objective-c uitableview reloaddata

我正在尝试在UITableViewCell中显示来自服务器的数据。正在调用所有委托方法,但单元格未更新。

请参阅下面的代码。

if(userSessionData !=nil) {
    NSString * cid=[NSString stringWithFormat:@"%@",[userSessionData 
    objectForKey:@"cid"]];
    NSString * sessionid=[NSString stringWithFormat:@"%@", 
    [userSessionData objectForKey:@"sessionid"]];

        NSMutableArray * inputArray=[[NSMutableArray alloc]init];
        [inputArray addObject:@"getAmcList"];
        [inputArray addObject:[NSString stringWithFormat:@"%@searchscheme_option/%@/%@/%@/%@/%@",mfSharedManager.baseUrl,[mfSharedManager encodeStringTo64:assetType],[mfSharedManager encodeStringTo64:catagory],[mfSharedManager encodeStringTo64:amc],[mfSharedManager encodeStringTo64:cid],[mfSharedManager encodeStringTo64:sessionid]]];
        [mfSharedManager inputRequestMethod:inputArray withCompletionHandler:^(NSDictionary *dict) {
            self.responseDataDictionary = [[NSMutableDictionary alloc]initWithDictionary:dict];
            NSLog(@"%@",self.responseDataDictionary);
           [self callMethod];
    //                dispatch_async(dispatch_get_main_queue(), ^{
//                    [self.equityTableView reloadData];
//                });
        }];

}

通话方法:

-(void)callMethod  {
    dispatch_async(dispatch_get_main_queue(), ^{
//    self.equityTableView.delegate=self;
//    self.equityTableView.dataSource=self;
    [self.equityTableView reloadData];
});
 }

我在self.equityTableView.delegate=self;中调用委托方法self.equityTableView.dataSource=selfviewDidLoad

为了进行测试,我在NSLog中保留了cellForRowAtIndex。数据正在正确打印,但UI未更新。

我做错了什么?

2 个答案:

答案 0 :(得分:0)

请从Storyboard / XIB设置委托和数据源并设置@interface TableVC:UIViewController< UITableViewDelegate,UITableViewDataSource>并检查。

答案 1 :(得分:0)

请检查下面提到的两种代表方法:

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath;

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section;
  • 是否会返回预期值?如果没有,那么由于这个原因,它可能不会更新您的tableview。如果一切正常,那么共享你的cellForRowAtIndexPath方法代码。