GCD z NSURLConnection
ja używamGCD
wysyłaćHTTP
żądanie asynchronicznie. Oto kod, który nie działa:
dispatch_async(connectionQueue, ^{
NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init];
[request setURL:[NSURL URLWithString:[NSString stringWithFormat:someURL]]];
NSURLConnection *connection = [[NSURLConnection alloc] initWithRequest:request delegate:self];
[connection start];//Not working
});
powyższy kod w ogóle nie działa. Nie otrzymuję żadnych wywołań w metodach NSURLConnectionDelegate.
Ale kiedy spróbowałem następującego kodu, wszystko działało dobrze i otrzymałem odpowiednie wywołania zwrotne
NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init];
[request setURL:[NSURL URLWithString:[NSString stringWithFormat:someURL]]];
NSURLConnection *connection = [[NSURLConnection alloc] initWithRequest:request delegate:self];
dispatch_async(connectionQueue, ^{
[connection start]; // working fine. But WHY ????
});
Czy ktoś może wyjaśnić to dziwne zachowanie bloku / GCD?