Ваша проблема будет асинхронностью. Я не уверен, что вы подразумеваете под консолидацией, но у вас может быть синглтон (вы можете просто использовать делегат приложения) для вызова запросов. Итак, вы бы сделали что-то вроде этого:
[(MyAppDelegateClass *)[UIApplication sharedApplication].delegate doLoginStuff:(NSDictionary *)params delegate:self];
Если вы делаете все это асинхронно, вы не можете просто вызвать этот метод и заставить его что-то вернуть. Вы застрянете с каким-то обратным вызовом к вашему контроллеру представления, и именно так ASI работает по умолчанию. В лучшем случае вы можете минимизировать код для генерации запроса и установить любые повторяющиеся свойства.
Я не уверен, что вы имеете в виду, имея в виду, что экземпляры плавают повсюду. Если вы беспокоитесь о памяти, это не изменило бы повторное использование одного и того же объекта. ASI обычно использует запрос с автоматическим выпуском, так что это будет то же самое, что и создание его «консолидированным» методом. Если бы это был просто чистый код, я бы сделал один способ и, возможно, сделал бы быстрый вызов метода на основе c в некотором типе класса Utilities, который вы создаете и импортируете с помощью файла префикса. Но опять же, вам нужны методы обратного вызова в вашем контроллере представления, чтобы он не стал слишком чистым, чем он уже предназначен для работы. Я разделяю вашу боль, хотя.
Когда любой запрос возвращается, у меня почти всегда есть метод, который анализирует результаты. Обычно я работаю только с одним типом веб-службы, поэтому есть метод, который анализирует результаты и (также записывает его в NSLog для целей отладки) также возвращает мне NSDictionary или NSArray.