Мой вопрос относится к коду в моем однопоточном приложении, которое обновляет данные локальной базы данных устройств через NSURLConnection до веб-службы.
Моя инициализация NSURLConnection не входит ни в один из реализованных методов иэто меня озадачилоВнутри моего метода AppDelegate.m -> applicationDidFinishLaunching я создаю объект NSURLConnection:
//AppDelegate.m
- (void)applicationDidFinishLaunching:(UIApplication *)application
{
// ... Building request URL here ...
NSString *requestURL = [NSString stringWithFormat:@"%@%@", URI,urlEncodedParamStr]
NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:requestURL]];
NSURLConnection *connection = [[NSURLConnection alloc] initWithRequest:request delegate:self];
responseData = [[NSMutableData data] retain];
if(connection !=nil)
[connection release];
}
Теперь выполнение должно перейти к любому из следующих соответствующих методов NSURLConnection, которые я реализовал в AppDelegate.m:
- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response{[responseData setLength:0];}
- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data {[responseData appendData:data];}
- (void)connectionDidFinishLoading:(NSURLConnection *)connection{//my implementation}
- (void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error {//my implementation}
Но вместо этого выполнение продолжается со строкой непосредственно после инициализации соединения NSURLConnection *, не выполняя ни один из реализованных методов NSURLConnection.Я подтвердил, что запрос не равен нулю, и поставил точки останова в реализованных методах NSURLConnection - они не вызываются.
Что происходит?
Спасибокак всегда!