sendSynchronousRequest를 사용하여 NSURLConnection에 대한 내 코드가 올바르게 작동하지만 어떻게 비동기 요청으로 변경할 수 있습니까? 나는 많이 시도했지만 아무 일도 없을 것이다.NSURLConnection을 sendSynchronousRequest에서 sendAsynchronousRequest로 변경 하시겠습니까?
요청이 비어 있으면 [[]]이 (가) 빈 배열을 가져옵니다. 경고 메시지를 잡으려면 어떻게해야합니까? 당신은 할 수
도와주세요 ...
[UIApplication sharedApplication].networkActivityIndicatorVisible = YES;
NSString *urlString = @"http://www.xyz.at/sample.php";
NSURL *url = [NSURL URLWithString:urlString];
NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init];
[request setURL:url];
[request setHTTPMethod:@"POST"];
NSMutableData *body = [NSMutableData data];
NSString *postWerte = [NSString stringWithFormat:@"id=%@", self.textfeld.text];
[body appendData:[postWerte dataUsingEncoding:NSUTF8StringEncoding]];
[request setHTTPBody:body];
NSError *error = nil;
NSData *returnData = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:&error];
NSLog(@"Error: %@", error.description);
NSString *returnString = [[NSString alloc] initWithData:returnData encoding:NSUTF8StringEncoding];
const char *convert = [returnString UTF8String];
NSString *responseString = [NSString stringWithUTF8String:convert];
NSMutableArray *meinErgebnis = [responseString JSONValue];
NSString *cycle = @"";
NSString *kopfdaten = [NSString stringWithFormat:@"Sendungsart: %@\r\nGewicht: %@ kg\r\n\r\n", [[meinErgebnis objectAtIndex:0] objectForKey:@"ParcelTypeDescription"], [[meinErgebnis objectAtIndex:0] objectForKey:@"Weight"]];
cycle = [cycle stringByAppendingString:kopfdaten];
for(int i = 1; i < meinErgebnis.count; i++)
{
NSString *myValue = [NSString stringWithFormat:@"%@ PLZ: %@\r\nStatus: %@\r\n\r\n",
[[meinErgebnis objectAtIndex:i] objectForKey:@"EventTimestamp"],
[[meinErgebnis objectAtIndex:i] objectForKey:@"EventPostalCode"],
[[meinErgebnis objectAtIndex:i] objectForKey:@"ParcelEventReasonDescription"]];
cycle = [cycle stringByAppendingString:myValue];
}
self.ergebnis.text = [NSString stringWithFormat:@"%@", cycle];
[UIApplication sharedApplication].networkActivityIndicatorVisible = NO;
[self.textfeld resignFirstResponder];
비동기 요청을 시도한 코드를 표시해야합니다. 그러면 누군가가 문제를 해결하도록 도와 줄 수 있습니다. –
'for' 루프에서 인덱스가 0 인 첫 번째 항목을 건너 뛰었습니까? – Rob