我使用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 :(得分: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;
}
此外,您可以在后台加载数据并维护一个问题数组并填充在表格中。这使您的表格流畅。目前你的桌子表现得不稳定。