Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/118.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 如何在I';我在上课吗?_Ios_Json_Uitableview - Fatal编程技术网

Ios 如何在I';我在上课吗?

Ios 如何在I';我在上课吗?,ios,json,uitableview,Ios,Json,Uitableview,我在InquiryViewController上有一个表视图,我想在单击“更新状态”按钮时重新加载它。更新状态按钮是一个JSON,用于获取消息的状态 代码如下: -(BOOL)getMessageStatus : (NSMutableArray *)emails : (UIAlertView *)alert : (UIProgressView *)progress : (InquiryLogViewController *)controller { _emailsInApi = [[NS

我在
InquiryViewController
上有一个表视图,我想在单击“更新状态”按钮时重新加载它。更新状态按钮是一个JSON,用于获取消息的状态

代码如下:

-(BOOL)getMessageStatus : (NSMutableArray *)emails : (UIAlertView *)alert : (UIProgressView *)progress : (InquiryLogViewController *)controller
{
    _emailsInApi = [[NSArray alloc]init];
    _emailsInApi = [[DBManager getSharedInstance]arrayOfEmails];

    NSMutableArray *newArrayEmail = [[NSMutableArray alloc]init];
    NSString *arrayEmail =@"";
    for(int i = 0; i<[_emailsInApi count]; i++){

        arrayEmail = [_emailsInApi objectAtIndex:i];

        [newArrayEmail addObject:arrayEmail];
    }

    NSURL *url = [NSURL URLWithString:@"http://www.url.com/API/2.0/message.php"];

    NSDictionary *params =@{@"api_key":@"APIKEYIOS",@"action":@"get-message-status",@"email":newArrayEmail};
    NSLog(@"params: %@",params);
    NSData *paramsData = [NSJSONSerialization dataWithJSONObject:params
                                                         options:NSJSONWritingPrettyPrinted
                                                           error:nil];

    NSString *paramsString = [[NSString alloc]initWithData:paramsData encoding:NSUTF8StringEncoding];
    paramsString = [paramsString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
    paramsString = [paramsString stringByReplacingOccurrencesOfString:@"%5C" withString:@""];

    NSString *post = [NSString stringWithFormat:@"params=%@", paramsString];
    NSData *sendData = [post dataUsingEncoding:NSUTF8StringEncoding];
    NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
    [request setHTTPMethod:@"POST"];
    [request setHTTPBody:sendData];
    NSURLSessionDataTask *task = [[NSURLSession sharedSession] dataTaskWithRequest:request
                                                                 completionHandler:^(NSData *data, NSURLResponse *response, NSError *error)

                                  {
                                      if (!error)
                                      {
                                          NSString *responseString = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
                                          NSLog(@"response...... = %@", responseString );
                                          //get data frm response
                                          self.responseData = [NSJSONSerialization JSONObjectWithData:data options:0 error:nil];
                                          self.responseArray = [self.responseData objectForKey:@"data"];


                                              for(NSDictionary *items in self.responseArray)
                                              {
                                                  Inquiry *inq = [[Inquiry alloc]init];
                                                  inq.email = [items objectForKey:@"to_email"];
                                                  inq.status = [items objectForKey:@"status_id"];

                                                  [emails addObject:inq];
                                              }

                                          float newProg = (float)1 - (float)[emails count] / (float)5;
                                          dispatch_async(dispatch_get_main_queue(), ^{
                                              [progress setProgress:newProg animated:YES];
                                          });
                                          dispatch_async(dispatch_get_main_queue(), ^{
                                              [[DBManager getSharedInstance]updateInquirylog:emails];

                                          });
                                          dispatch_async(dispatch_get_main_queue(), ^{
                                              controller.arrayOfEmails = [[DBManager getSharedInstance]loadInquiries];
                                              [controller.tableViews reloadData];

                                          });
                                          dispatch_async(dispatch_get_main_queue(), ^{
                                              [alert dismissWithClickedButtonIndex:0 animated:YES];

                                          });
                                      }
                                      else
                                      {
                                          self.alert = [[UIAlertView alloc] initWithTitle:nil message:error.localizedDescription delegate:self cancelButtonTitle:@"OK" otherButtonTitles: nil];
                                          self.responseData = nil;
                                          [alert show];
                                      }
                                  }];

    [task resume];
    return  YES;
}

创建tableview的一个实例,并添加您想要添加到的方法中的给定代码。
[self.nameoftableview reloaddata]

这里似乎解释了您的问题:它在那里:[controller.tableViews reloaddata];在Async中,为什么不将单元格设为零,然后在重新加载时再次分配呢?尝试一下,我今天在重新加载表视图时遇到了一些问题,但在重新分配单元格后,问题得到了解决。谢谢。你能举个例子吗?对不起,我今天已经浪费了。在检查单元格是否为nil之前,让它为nil。表中的值已经确定。最后,你返回了nil,返回了cell。这是相同的bruh。表中没有值
 if (indexPath.section ==1) {
    cell = [tableView dequeueReusableCellWithIdentifier:section1identifier];
    cell = nil;//here i have made it nil
    if (!cell)
    {
        cell = [[UITableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:section1identifier];

    data *newObj = [callingObj.itemslist objectAtIndex:indexPath.row];

        UITextView *titlelabel = [[UITextView alloc]initWithFrame:CGRectMake(cell.frame.origin.x+5, cell.frame.origin.y-2, 320, 38)];
        titlelabel.textColor = [UIColor redColor];
        titlelabel.font= [UIFont fontWithName:@"Times New Roman" size:FONT_SIZE];
        titlelabel.text = newObj.title;
        titlelabel.scrollEnabled = NO;
        titlelabel.editable = NO;
        [cell.contentView addSubview:titlelabel];

    desView = [[UITextView alloc]initWithFrame:CGRectMake(cell.frame.origin.x,cell.frame.origin.y+25 , 320, i + 160)];
        desView.text = newObj.description;
        desView.editable = NO;
        desView.hidden = NO;
        [cell.contentView addSubview:desView];
        if (check == NO) {
            desView.hidden = YES;
        }
    }
}
return cell;
 if (indexPath.section ==1) {
    cell = [tableView dequeueReusableCellWithIdentifier:section1identifier];
    cell = nil;//here i have made it nil
    if (!cell)
    {
        cell = [[UITableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:section1identifier];

    data *newObj = [callingObj.itemslist objectAtIndex:indexPath.row];

        UITextView *titlelabel = [[UITextView alloc]initWithFrame:CGRectMake(cell.frame.origin.x+5, cell.frame.origin.y-2, 320, 38)];
        titlelabel.textColor = [UIColor redColor];
        titlelabel.font= [UIFont fontWithName:@"Times New Roman" size:FONT_SIZE];
        titlelabel.text = newObj.title;
        titlelabel.scrollEnabled = NO;
        titlelabel.editable = NO;
        [cell.contentView addSubview:titlelabel];

    desView = [[UITextView alloc]initWithFrame:CGRectMake(cell.frame.origin.x,cell.frame.origin.y+25 , 320, i + 160)];
        desView.text = newObj.description;
        desView.editable = NO;
        desView.hidden = NO;
        [cell.contentView addSubview:desView];
        if (check == NO) {
            desView.hidden = YES;
        }
    }
}
return cell;