Я уже посмотрел на NSURLConnectionDelegate connection:didReceiveData not working, но, похоже, от этого не было хорошего результата, поэтому мне любопытно, почему я не могу получить какие-либо данные.NSUrlConnectionDelegate не вызывает методы для загрузки данных
Я поставил точки останова в didReceiveResponse
и didReceiveData
.
Он распечатывает «соединение успешно», поэтому я знаю, что соединение запущено.
Я использую ARC для управления памятью.
- (void)load {
request = [NSMutableURLRequest requestWithURL:myURL
cachePolicy:NSURLRequestReloadIgnoringLocalCacheData
timeoutInterval:60];
NSURLConnection *conn = [[NSURLConnection alloc] initWithRequest:request delegate:self];
if (conn) {
[conn start];
NSLog(@"connection succeeded, %s", [myURL description]);
responseData = [NSMutableData data];
} else {
NSLog(@"connection failed");
}
}
- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response {
responseData = [[NSMutableData alloc] init];
}
- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data {
[responseData appendData:data];
}
UPDATE:
Чтобы увидеть, как я могу проверить этот взгляд на Asynchronous unit test not being called by SenTestCase.
Я реализовал два метода, упомянутых jonkroll, в его ответе я просто их не показывал, но они также не вызываются.
Я добавил [conn start]
только потому, что он не работал, и я надеялся, что это может решить, но такой удачи нет.
Я изменил conn, чтобы быть следующим: @property NSURLConnection * conn; Но я получаю тот же результат, данные не получены. После ожидания чуть более 90 секунд мой модульный тест перестает ждать и терпит неудачу. –
@JamesBlack Я добавил несколько тестовых примеров кода. – NJones
Я еще не уверен в различии, но теперь он работает, благодаря вам. –