Как я могу обработать данные, полученные от NSURLConnection - PullRequest
0 голосов
/ 28 мая 2010

Я создал класс MyConnection, который расширяет NSURLConnection. Я реализовал несколько методов делегатов. Я могу распечатать данные, полученные из URL-вызова. Однако, когда я передаю экземпляр MyConnection в класс MyHelper, я не получаю данные, полученные в классе MyConnection. Я попытался перевести вызов в спящий режим между этими двумя задачами, но все равно не повезло. Метод делегата connectionDidFinishLoading вызывается только после завершения текущего блока кода. Есть ли способ решить эту проблему, не попадая в уведомление?

MyConnection *con = [[MyConnection alloc] init];    
[con fetchDataFromServer];
//sleep call here
MyHelper *myHelper = [[MyHelper alloc ] initWithConnection:con];
[myHelper processDataFoundInConnection];

1 Ответ

2 голосов
/ 28 мая 2010

Это потому, что NSURLConnection (по умолчанию) обрабатывает асинхронно в текущем цикле выполнения (поэтому он не асинхронный, поскольку не использует вторичный поток). Таким образом, вы можете либо вращать runloop вручную, либо использовать метод sendSynchronousRequest:....

...