Я получаю вопросы от сервера, использующего скрипт php. Я устанавливаю количество ячеек в соответствии с количеством вопросов, но когда я пишу в ячейки, выводится только 1 вопрос. Если я использую цикл for, ячейки будут пустыми, но если я установлю число, он будет повторять тот же вопрос в зависимости от количества вопросов в базе данных. Вот код:

    NSString *numOfQuestionsURL = @"http://**.***.**.**/count.php";
    NSData *dataURLforSize = [NSData dataWithContentsOfURL:[NSURL URLWithString: numOfQuestionsURL]];
    NSString *serverOutputforSize = [[NSString alloc] initWithData:dataURLforSize encoding:NSASCIIStringEncoding];
    int numOfQuestions = [serverOutputforSize intValue];
    for(int i = 0; i <= numOfQuestions; i++)
    {
        _hostStr = @"http://**.***.**.**/getQuestion.php?num=";
        _appendString = [[NSNumber numberWithInt:i] stringValue];
        _hostStr = [_hostStr stringByAppendingString: _appendString];
    }
    NSData *dataURL = [NSData dataWithContentsOfURL:[NSURL URLWithString: _hostStr]];
    NSString *serverOutput = [[NSString alloc] initWithData:dataURL encoding:NSASCIIStringEncoding];
    result.textLabel.text = serverOutput;

_appendString = [[NSNumber numberWithInt: i] stringValue]; здесь вы указываете сценарию, какой вопрос хотите получить.

0
heinst 9 Май 2013 в 11:01
1
Куда вы добавили этот код?
 – 
Mohith
9 Май 2013 в 11:18
2
Если это находится в cellForRowAtIndexPath, удалите цикл for и добавьте _appendString = [[NSNumber numberWithInt: indexPath.row] stringValue];
 – 
Mohith
9 Май 2013 в 11:19
Он находится в cellForRowAtIndexPath, но это не сработало, ячейки по-прежнему были пустыми
 – 
heinst
9 Май 2013 в 11:25
Я предполагал, что «результат» - это ваша ячейка. Если бы это было так, вышеуказанное исправление сработало бы.
 – 
Mohith
9 Май 2013 в 12:14

1 ответ

Лучший ответ

Вам нужно использовать этот код вот так

- (NSInteger)tableView:(UITableView *)tableView 
 numberOfRowsInSection:(NSInteger)section {

    NSString *numOfQuestionsURL = @"http://**.***.**.**/count.php";
        NSData *dataURLforSize = [NSData dataWithContentsOfURL:[NSURL URLWithString: numOfQuestionsURL]];
        NSString *serverOutputforSize = [[NSString alloc] initWithData:dataURLforSize encoding:NSASCIIStringEncoding];
        return [serverOutputforSize intValue];
}





- (UITableViewCell *)tableView:(UITableView *)tableView 
         cellForRowAtIndexPath:(NSIndexPath *)indexPath {
  //make cell

 _hostStr = @"http://**.***.**.**/getQuestion.php?num=";
        _appendString = [[NSNumber numberWithInt:indexPath.row] stringValue];
        _hostStr = [_hostStr stringByAppendingString: _appendString];
 NSData *dataURL = [NSData dataWithContentsOfURL:[NSURL URLWithString: _hostStr]];
    NSString *serverOutput = [[NSString alloc] initWithData:dataURL encoding:NSASCIIStringEncoding];
cell.textLabel.text = serverOutput;

  return cell;
}

Также вы можете загружать данные в фоновом режиме и поддерживать массив вопросов и заполнять их в таблице, что делает вашу таблицу гладкой. в настоящее время ваш стол ведет себя отрывисто.

1
Ishu 9 Май 2013 в 11:51