У меня была асинхронная работа NSURLConnections, которая отлично работала, когда я использовал мой viewController в качестве делегата, теперь у меня есть все виды подключений, и я хочу сделать их все через одноэлементный объект Connection. Поэтому у меня есть Connection, создающий новый объект делегата для каждого соединения, которое он делает. Соединение создается в делегате приложения, но функция +(void)send:(Message *)
, вероятно, завершается.
Мне кажется, что это работает так, что слушатели-делегаты попадают в цикл выполнения (я не совсем уверен в этом, но думаю, что они не в отдельных потоках. Это не должно иметь значения, поскольку делегаты выделяют свои собственные responseData memory.) и connectionDidFinishLoading выполняется просто отлично, но с пустыми responseData. Я имею в виду, что я нахожусь в connectionDidFinishLoading, но responseData имеет нулевые байты.
Код, создающий делегат приложения (в методе send):
ConnectionDelegate *delegate = [[ConnectionDelegate alloc] init];
NSURLConnection *connection=[[NSURLConnection alloc] initWithRequest:request delegate:delegate];
Итак, мой вопрос сложен вдвое:
Проблема в том, что метод send завершается? Указатель делегата имеет локальную область видимости.
Если это проблема, что я могу сделать, чтобы сохранить жизнь делегату?