작동중인 테이블보기에 4 개 도시 문자열을로드하고 있는데 셀 중 하나를 선택하고 다른 테이블로 이동하면 탐색 속도가 너무 느려집니다. 다른 링크가있는 다른 테이블에서 아래의 동일한 코드를 사용하고 있습니다. 다른 시각을보기 위해 왜 오랜 시간 (~ 4 - 6 초)이 걸릴지 말해 주시겠습니까?JSON을 사용하여 UITableView를 탐색 할 때 문제가 발생합니다.
- (void)viewDidLoad
{
[super viewDidLoad];
NSURL * url = [NSURL URLWithString:@"http://kalkatawi.com/jsonTest.php"];
NSData * data = [NSData dataWithContentsOfURL:url];
NSError *e = nil;
jsonArray = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:&e];
jsonArray1 = [[NSMutableArray alloc] init];
for(int i=0;i<[jsonArray count];i++)
{
NSString * city = [[jsonArray objectAtIndex:i] objectForKey:@"city"];
[jsonArray1 addObject:city];
}
-
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
NSString *tempString = [jsonArray1 objectAtIndex:indexPath.row];
cell.textLabel.text = tempString;
return cell;
}
- 당신이 동기 다운로드 및 메인 스레드를 차단하고 어쩌면 때문에
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
SeconfViewController *second = [[SeconfViewController alloc] initWithNibName:@"SeconfViewController" bundle:nil];
UITableViewCell *selectedCell = [tableView cellForRowAtIndexPath:indexPath];
NSString *cellText = selectedCell.textLabel.text;
NSString *edit = [NSString stringWithFormat:@"http://kalkatawi.com/jsonTest.php?d=1&il=%@", cellText];
second.str2 = edit;
[self.navigationController pushViewController:second animated:YES];
}
주 스레드에서 동기식 네트워크 호출을하는 것과 같은 소리가납니다. 비동기 네트워크 호출을 만드는 방법을 찾으십시오. 수많은 예제가 있습니다. –