로컬 노드 서버에서 일부 데이터를 가져 오려고합니다. 서버가 get 요청을 받고 그것을 로깅하지만, 어떤 이유로 iOS 어플리케이션이 완성 핸들러에있는 코드를 실행하지 않습니다.NSURLSessionDataTask가 완료 핸들러 블록을 실행하지 않습니다.
- (IBAction) buttonPressed{
NSURL *url = [NSURL URLWithString:@"http://127.0.0.1:3000/"];
NSURLSessionDataTask *dataTask =
[self.session dataTaskWithURL:url
completionHandler:^(NSData *data,
NSURLResponse *response,
NSError *error){
nameLabel.text = @"yay!";
/*
if (!error){
nameLabel.text = @"noerr";
NSHTTPURLResponse *httpResp = (NSHTTPURLResponse *)response;
if (httpResp.statusCode == 200){
NSError *jsonErr;
NSDictionary *usersJSON =
[NSJSONSerialization JSONObjectWithData:data
options:NSJSONReadingAllowFragments
error:&jsonErr];
if (!jsonErr){
// nameLabel.text = usersJSON[@"username"];
nameLabel.text = @"nojerr";
}
else{
nameLabel.text = @"jsonErr";
}
}
}
else{
nameLabel.text = @"Err";
}
*/
}];
[dataTask resume];
} 프로그램을 실행하면
의 nameLabel는 변경되지 않습니다에 "야호"여기에 코드입니다. 그러나 NSURLSessionDataTask 줄 앞에 nameLabel 변경하려고하면 변경됩니다.
도움이 되었으면 아래에서 답변을 선택하십시오. 답과 관련된 질문이 있으시면 언제든지 말씀해주십시오. – wigging