Я вижу, что столкнулся с довольно похожей проблемой, когда я получил упражнение для работы с приложением, использующим набор асинхронных обработчиков http и ftp в наборе процессов и рабочих процессов.Я не знаю об ASIHTTP API, но я предполагаю, что я сделал что-то подобное.Я определил так называемое RequestOperationQueue, которое может, например, представлять все операции запроса определенного рабочего процесса.Также я определил несколько шаблонных операций, например, FTPDownloadOperation.И тут приходит ключ.Я реализовал все эти RequestOperations более или менее в соответствии с идеей http://www.dribin.org/dave/blog/archives/2009/05/05/concurrent_operations/. Вместо реализации логики делегата в самой операции, я реализовал как обработчики обратного вызова, специализированные для различных протоколов (http, ftp, rsync и т. Д.), Обеспечивающихсвойство status для определенного запроса, который может быть обработан операцией через KVO.Пользовательский интерфейс может быть уведомлен о рабочем процессе, например, по протоколу делегата для RequestOperationQueue.например didReceiveCallbackForRQOperation: (RequestOperation) rqo.С моей точки зрения, кодирование рабочих процессов, включая клиент-серверные операции, очень удобно при таком подходе.