나는 다른 timetstamp와 함께 URL을 호출하는 메소드를 호출하고 있습니다. 그러나 데이터 처리는 내가 정의한 시간보다 오래 걸릴 수 있습니다. 아래 부분PerformSelector-iOS를 호출하는 최적의 방법
[self performSelector:@selector(process) withObject:nil afterDelay:1.6];
는 방법
-(void)process
{
timestamp=[NSString stringWithFormat:@"%1.f",progressValue];
NSString *[email protected]"&bandschema=4";
NSString *url6=[NSString stringWithFormat:@"http://contour.php? callback=contourData%@&type=json×tamp=%@%@",timestamp,timestamp,contour];
NSURL *url1=[NSURL URLWithString:url6];
__weak ASIHTTPRequest *request1 = [ASIHTTPRequest requestWithURL:url1];
[request1 setCompletionBlock:^{
responseString = [request1 responseString];
[self plotPoint:self.responseString];
}];
[request1 setFailedBlock:^{
NSError *error=[request1 error];
NSLog(@"Error: %@", error.localizedDescription);
}];
[request1 startAsynchronous];
}
호출이 부분 데이터를 분석 시작점이다 나타낸다.
-(void)plotPoint:(NSString *)request
{
NSArray *polygonArray = [[dict objectForKey:@"data"]valueForKey:@"polygon"];
NSArray *valleyPolygonArray = [[dict objectForKey:@"valley"]valueForKey:@"polygon"];
CLLocationCoordinate2D *coords;
}
그러나 인터넷 연결이 좋지 않은 경우 특히 시간 간격이 새 데이터를 얻기에 충분하지 않습니다.
제발 나를 안내해 주시겠습니까? 문제를 어떻게 처리 할 수 있습니까? 최적의 솔루션은 무엇입니까?
데이터를 어떻게 가져 오나요? 반환 할 때 서버 응답을 처리 할 수 있어야하며 1.6 초마다 호출 할 필요가 없습니다. – danielM
이것은 현재 사용중인 끔찍한 반 패턴입니다. NSURLConnection 외에도 이유가 있습니다. 위임 메서드 또는 콜백 블록이 있습니다 ... –
위의 업데이트 된 코드를 참조하십시오. –