0

많이 찾았지만 (iOS 5 SDK를 사용하는) 내 응용 프로그램에서 NSURLConnection 대리자 메서드는 viewDidLoad 메서드 또는 모든 단추의 클릭 이벤트에서 연결을 초기화하고 시작할 때만 호출됩니다. .NSURLConnection 대리자가 작동하지 않습니다.

하지만 JSON 파일을 구문 분석 한 후에이 파일을 호출하고 싶습니다. JSON의 모든 레코드에 대해 새로운 연결을 만듭니다.

아무도 무슨 일이 일어 났는지 말해 줄 수 있습니까?

-(void)getData:(NSString*)URL{ 
NSURLRequest *urlRequest = [[NSURLRequest alloc] initWithURL:[NSURL URLWithString:URL]]; 

shortURL = [NSString stringWithString:URL]; 


connection = [[NSURLConnection alloc] initWithRequest:urlRequest delegate:self]; 

//NSAssert(connection!=nil, @"no connection", nil); 
[connection start]; 

}

- (NSURLRequest *)connection:(NSURLConnection *)connection willSendRequest:(NSURLRequest *)request redirectResponse:(NSURLResponse *)response 

{ // application specific stuff }

GetData의 기능을 클래스로 작성 상속 : 뭔가 여기에 5

IOS SDK를 변경 것은 내 코드입니다 NSObject에서. 그리고 그것은

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 

UITableView의 방법에서 호출됩니다.

도와주세요.

+2

포스트 코드 ... 실제 문제가 될 수 있도록 – esqew

+1

마지막 위임 방법이 문서 –

+0

에에서 iOS 5 읽기에 depricated하는 것은, 여기에 코드 블록을 제공하시기 바랍니다 확인했다. – iCreative

답변

2

JSON 구문 분석 코드가 백그라운드 스레드에서 발생한다고 가정하면 해당 스레드에 대한 NSRunLoop을 만들어야합니다.

NSURLConnection 클래스는 단순히 runloop에 자체를 추가하는 것이고, NSURLConnection 클래스가 없으면 처리 또는 대리자 메서드가 호출되지 않습니다.

connection = [[NSURLConnection alloc] initWithRequest:urlRequest delegate:self]; 
[[NSRunLoop currentRunLoop] run]; 

참고 : 실행 방법은 차단합니다

관련 문제